适合开源的项目
整理收藏的 Markdown 笔记
框架全家桶的脚手架搭建
炫酷的动画效果
各种工具库、框架
cache工具(缓存工具,整合localStorage,以及合理的内存销毁机制)
query2json,解析url参数为json格式
移动端打印 console.log, 方便移动端输出内容
设置 pkg 初始值
npm config set init.author.email "lulu27753@163.com"
npm config set init.author.name "lulu"
npm config set init.author.url "https://github.com/lulu27753"
npm config set init.license "MIT"
npm config set init.version "0.1.0"
版本号
一级:重构版本
二级:重大功能改进
三级:小升级或者bug修复
0.X.X: 非正式版本
Semantic Versioning
使用 semantic-release 实现全自动更新版本号和发布,这个工具会判断 Commit Message 的不同,fix 增加修订号,feat 增加次版本号,而包含 BREAKING CHANGE 的提交增加大版本号。
z 位:每周三会进行日常 bug 修复版本的更新,紧急问题不受此限制,可以随时发布
y 位:每月发布一个带有新特性的向下兼容的版本
x 位:包含有 break change 变更的大版本,一般周期一到两年
通过 npm version 命令来发布版本:
# v1.0.0
npm version prepatch # 发布一个预修订版本 v1.0.1-0
npm version patch # 修改修订号,做了向下兼容的问题修正,v1.0.1
npm version preminor # 发布预次版本 v1.1.0-0
npm version minor # 修改次版本号,做了向下兼容的功能性新增,v1.1.0
npm version premajor # 发布预备主版本 v2.0.0-0
npm version prerelease --preid=alpha # alpha 是测试版本,beat 是内测版本,区别与release正式版本
npm version major # 修改主版本号,做了不兼容的 API 修改,v2.0.0
⚠️如果破坏了语义化的规范发布了不兼容的版本,应该继续往下发修复相应兼容版本
开源协议
开源协议是软件的授权许可,表述了用户获得你开源的代码后拥有的权利和义务,可以参考
Choose an open source license | Choose a License
规范提交记录
方便使用工具根据提交记录自动生成更新说明 (CHANGELOG)
Angular 规范 (Git Commit Message Conventions )
性质(影响范围): 提交说明
形如:feat(all): update webpack from 2 to 2 [TK-236]
- 性质
- feat: A new feature; 添加新特性
- fix: A bug fix ;修复 bug
- docs: Documentation only changes; 仅仅修改了文档
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc); 仅仅修改了空格、格式缩进、逗号等等,不改变代码逻辑
- refactor: A code change that neither fixes a bug nor adds a feature;代码重构,没有加新功能或者修复bug
- perf: A code change that improves performance;增加代码进行性能测试
- test: Adding missing tests or correcting existing tests;增加测试用例
- build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
- ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs);新增工程化脚本工具
- chore: Other changes that don’t modify src or test files;改变构建流程、或者增加依赖库、工具等
- revert: Reverts a previous commit;撤销以前的提交
<type>(<scope>): <subject>
<body>
<footer>
commitizen : 进行交互式的 Commit 填写,只需要按照提示选择更新的 type 和填写必要的信息,就能自动生成符合规范的提交记录;
也可以根据commit message
来生成changelog
# command
conventional-changelog -p angular -i CHANGELOG.md -s -r 0
-i
: 表示从CHANGELOG.MD
中读取changelog
-s
: 读写changelog
为同一个文件-r
: 表示生成changelog
的release
版本数量,默认为1,全部则是0 由于我的示例的commit
个数不够多,这里选取angular
的一部分changelog
来展示。
@semantic-release/changelog: 根据 Commit 中 type 自动增量生成 CHANGELOG
目录结构
src: 源代码
release: 发布结果
test:单元测试用例
doc: 文档
example:实例
Readme
产品简介(此处要突出特点,打差异化竞争)
产品安装和下载
快速使用(详细的使用文档或者二次开发文档,外链即可)
交流提问区(QQ、微信群)
关于作者(博客链接和收款二维码)
最好有英文版本
文档和测试用例
npm i gitbook-cli -g
SUMMARY.md
gitbook init
gitbook build
配置.gitignore加上_book
静态网站部署
- github pages: 将网站名称改为docs,静态资源路径容易出问题,因为引用的资源会在启动服务器的根目录(docs)寻找,而不是在相对路径
./docs
里面寻找 - 购置一个服务器、域名,将我们的代码推到服务器上,从域名中访问。
- Netlify:免费
发布npm模块
npm add user
npm login
npm publish .
不能重名
出现版本冲突
如 业务项目有react版本,开源包也有有react版本,会冲突,配置下 webpack alias 即可
if (isDev) {
alias.react = require.resolve('react')
}
减少版本发布次数
1、yarn link
yarn link <your_node_module>
2、借助工具(推荐): yalc: Work with yarn/npm packages locally like a boss.
可参考文章 Looking for brilliant yarn member who has first-hand knowledge of prior issues with symlinking modules · Issue #1761 · yarnpkg/yarn
自动部署
升级
新建分支
修改版本号
修改代码、文档和测试用例
自测
将新的分支提交到远程
再次确认版本号,因为版本号非常重要
将新的分支合并到 master,并提交 master 到远程
创建tag并提交到远程
提交到npm
宣传
一个公司的核心竞争力,一是技术,二是营销。
npmjs.com 展示下载量变化的折线图
bestofjs.org 展示了项目 Star 数变化的日历色块图
博客
围绕产品功能
第一类技术干货文章
第二类产品介绍
以第一类为主
如何
坑
预防
总结
半年记
回答相关的问题
知乎
stackoverflow
字数只能多不能少,最好图文并茂,还能讲个笑话
回答要专业,经过亲自测试,不要想当然的瞎猜
回答问题的最后,顺便推广自己的产品
需求采纳
很多用户都提过这个需求,即大众需求
自己判断这个需求对大部分用户都有用
该需求符合产品定位以及产品发展的方向
该需求能抹平和竞品的差距,或者能和竞品差异化竞争