1.测试代码
在开发者编写了一个npm包后,最关键的其实就是测试部分,如果只是内部使用的话出了错误改动代码的成本还比较小,如果发布到npm上,几万人在使用的一个包如果出了问题,可能影响的产品就太多了。
在这里推荐使用自动化的测试工具travis,当然工具还有很多种,选择最适用的就好。
Travis是与github绑定的,如果你的代码管理在github上,那么每次github仓库的代码更新,travis都会自动运行一遍测试脚本,如果本次代码更新出了问题,那么travis的build就会失败,并告知失败原因。
测试脚本都是针对功能的,每一个功能至少要有一个测试脚本。
使用travis也很简单,在代码项目里维护一个文件“.travis.yml”。
文件的格式内容有很多,根据开发者需求不同,配置的内容也不同,具体可以参看.travis.yml
以一个Javascript的npm包为例,
language: node_js
node_js:
- "lts/*"
script:
- "if [[ -n $LINT_TEST ]]; then npm run lint; fi"
- npm run test
它表明环境语言是node_js,安装版本为最近发布版本,运行内容为运行package.json的脚本中的“test”内容。
然后就可以编写测试脚本了,Mocha是Javascript的测试框架,既可以运行在浏览器环境也可以运行在node.js上,它的用法可以参看Mocha官网,或者阮一峰的博客测试框架 Mocha 实例教程。
2.配置信息
当测试任务完成后,就可以安心地准备npm包发布事情了,首先要在package.json里配置信息。
可以运行npm init
来自动生成package.json文件,也可以手工生成。
配置项:
名称 | 说明 |
---|---|
name | 项目名称 |
version | 项目版本号,版本规则semver |
description | 项目描述 |
main | 指定主入口,默认值为根目录下的index.js |
dependencies | 运行环境依赖 |
devDependencies | 开发环境依赖 |
scripts | 指定npm脚本 |
repository | 配置代码库 |
keywords | 指定关键字,便于开发者搜索 |
author | 配置作者信息 |
license | 配置许可类型 |
bugs | 配置问题反馈链接 |
homepage | 配置项目主页 |
还有一些配置项,具体可参看npm package.json
3.版本发布
最后发布就很简单了,先去npm官网注册一个账号。
注册后在本地运行npm login
进行登陆。
然后在项目根目录运行npm publish
即可发布。
建议版本号不要手动修改,如果需要更新包版本,先运行npm version <update_type>
,这个是更新版本的命令,package.json会自动进行更新。
然后再次运行npm publish
即可更新。
强烈建议不要轻易运行npm unpublish
来废除npm包,因为你不知道会有多少项目已经引用了这个包,这会带来不可预知的结果。
如果想要废除这个包,可以用npm deprecate
来让使用者看见警告提示,进行更新。具体可见deprecate
。