NPM如何发布node模块到社区

npm.jpg

如何把自己写的 node.js 模块发布到 npm 开源社区

有下面几个前提条件:

你需要是 npm 社区注册的会员

如果你还没有,点击下面的链接注册 https://www.npmjs.com/

你的开发环境需要 安装node.js 和 npm

创建repository

接下来我们需要创建module所需的repository,默认你拥有一个github账号(如果没有自行解决),这个repository用来托管我们module的代码,并方便用户报告bug,最重要的是可以让其他开发者向module贡献代码,这也是乐趣所在。

初始化package.json

接下来我们创建package.json文件,这个文件包含了module的所有信息,比如名称、版本、描述、依赖、作者、license等。

cd easyleveldb

创建 package.json

npm init

npm_init.png

上面会让你输入项目名称,开源协议等.

关于开源协议,请参考阮一峰老师的一张图片 kaiyuan.png

项目结构

2层树状结构


➜  /Users/zhangzhi/code/easyleveldb git:(master) ✗ >tree -L 2
.
├── README.md
├── app.js
├── config
│   └── db_config.json
├── db
│   ├── 000066.ldb
│   ├── 000068.ldb
│   ├── 000071.ldb
│   ├── 000214.log
│   ├── CURRENT
│   ├── LOCK
│   ├── LOG
│   ├── LOG.old
│   └── MANIFEST-000213
├── lib
│   └── _dbBase.js
├── models
│   └── BlogInfo.js
├── node_modules
│   ├── async
│   ├── level
│   ├── leveldown
│   ├── levelup
│   ├── lodash
│   ├── q
│   └── q-level
├── package.json
├── test
└── utils
    └── tools.js

14 directories, 16 files

持续集成

开源项目多如牛毛,从中找出靠谱的项目需要花费一定的精力,开发者都会对持续更新,并且经过测试(很多公司采用)的项目更加的信赖,对于刚上线并且用户数量很少的项目开发者都会有个疑虑:这项目靠谱吗?所以你需要对自己的项目打上一个标识:老子的项目靠谱。如何做?持续集成。

目前Github已经整合了持续集成服务travis,我们只需要在项目中添加.travis.yml文件,在下一次push之后,travis就会定时执行npm test来测试你的项目,并且会在测试失败的时候通知到你,你也可以把项目当前的状态显示在README.md中,让人一目了然, 比如:

.travis.yml是一个YAML文件,关于node.js相关的配置见这里,例子如下:

 language: node_js
node_js:
   - "0.10"
   - "0.8"
   - "0.6"  

发布

完成了上面的步骤之后,我们把上面注册的账号会被添加到npm本地的配置中,用来发布module用

➜  /Users/zhangzhi/code/easyleveldb git:(master) ✗ >npm adduser
Username: (yijiebuyi)
Password: (or leave unchanged)
Email: (this IS public) (vip@yijiebuyi.com)

如果出现以下错误,可能是你的npm版本太低,通过sudo npm install -g npm升级一下

npm WARN adduser Incorrect username or password
npm WARN adduser You can reset your account by visiting:
npm WARN adduser 
npm WARN adduser     http://admin.npmjs.org/reset
npm WARN adduser 
npm ERR! Error: forbidden may not mix password_sha and pbkdf2
npm ERR! You may need to upgrade your version of npm:
npm ERR!   npm install npm -g
npm ERR! Note that this may need to be run as root/admin (sudo, etc.)

成功之后,npm会把认证信息存储在~/.npmrc中,并且可以通过以下命令查看npm当前使用的用户:

npm whoami

以上完成之后,我们终于可以发布自己的module了:


$ npm publish 
➜  /Users/zhangzhi/public_module/easyleveldb git:(master) >sudo npm publish
+ easyleveldb@1.0.0

npm社区版本号规则采用的是semver(语义化版本),主要规则如下: 版本格式:主版号.次版号.修订号,版号递增规则如下: 主版号:当你做了不相容的 API 修改, 次版号:当你做了向下相容的功能性新增, 修订号:当你做了向下相容的问题修正。 先行版号及版本编译资讯可以加到「主版号.次版号.修订号」的后面,作为延伸。

出自:NPM如何发布node模块到社区



回到顶部