庇护祝福的分享

Be worthy

Node学习笔记二

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

稍后片刻就完成项目的发布了。