npm包简介
Node可以以包的形式封装插件,不同于Ruby的gem包,Node的包默认并不是全局安装的,而是安装在项目目录中的node_modules
目录下。只作用于项目目录。
如果需要全局安装,比如一些带有命令行工具的npm包,在安装时需要加上-g
命令,例如:
$ npm install -g supervisor
使用全局模式安装时,npm 会将包安装到系统目录,譬如 /usr/local/lib/node_modules/
,同时 package.json
文件中 bin 字段包含的文件会被链接到 /usr/local/bin/
。
需要注意的是使用全局模式安装的包并不能直接在 JavaScript 文件中用 require 获得,因为 require 不会搜索 /usr/local/lib/node_modules/。如果想要require全局包,可以使用
$ npm link package
这个命令会在项目内的node_modules
创建一个指向全局包的符号链接。通过这种方法,我们就可以把全局包当本地包来使用了。
制作npm包
一个基本的npm包需要包含一个package.json
文件,一个lib
文件夹,在lib
文件夹内编写主要的逻辑,package.json
文件则包含了该npm包的一些信息。
package.json
需要包含一个名为main的key,
{
"main": "./lib/test.js",
}
完整的npm包往往还需要一些其他的功能,例如测试,文档等
package.json
必须在包的顶层目录下;- 二进制文件应该在
bin
目录下; * JavaScript代码应该在lib
目录下; * 文档应该在doc
目录下; * 单元测试应该在test
目录下。 包的功能完成后,使用 $ npm init 这时会让你填写package的value,依次填写即可,完成后就可以发布了。
发布npm包
如果要发布npm包,需要注册一个账号,首先需要执行
$ npm config set email
然后执行
$ npm adduser
之后就可以跟据提示输入用户名,密码,邮箱。完成后输入npm whoami
可以查询是否注册成功。
注册完成后,在项目目录输入
$ npm publish
稍后片刻就完成项目的发布了。