一、简述

npm 是Node的包管理器,不管是前端后端,我们都可以使用上面已经发布的模块。

npm install module-name

运行上面的命令,npm 将从repository中提取模块到“node_modules” 文件夹中,前端如果是使用webpack构建项目的话,我们就可以使用es6 import直接导入模块使用,如下:

import Mymodule from 'module-name'

npm让我们非常方便的使用别人发布的模块,但作为一名开发者,我们又是如何制作npm 模块,发布给别人使用呢,

接下来我一步一步的讲解。

二、步骤

在github上创建一个新的repository,然后clone到本地

创建 package.json 文件来描述我们要制作的模块

创建和测试模块

发布模块到NPM

开始创建模块

这里假设你已经会使用github创建repository和clone到本地了。cd module-name进入根目录,运行命令:

npm init

这将引导并提示你一步步创建package.json文件,你可以不断按回车键选择默认值。
cmd-markdown-logo

创建和测试我们的模块

package.json中main字段已指定index.js为模块入口文件,import 某个模块时实际上是查找到主入口文件,然后导进来。我们可以在index.js编写我们的模块逻辑,下面就以一个计算两点间距离的功能模块来讲解

index.js:

exports.dist = function(p1, p2){ return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)); };

接下来我们编写一个测试用例来测试下

tests/test.js

var myMod = require('./../index.js'); var p1 = {x:1, y:1}; var p2 = {x:4, y:5}; var dist1 = myMod.dist(p1, p2); console.log("Distance between: ", p1, " and ", p2, " is:", dist1);

把package.json中scripts字段中test改成

“scripts”: {
“test”: “node tests/test.js”
},

运行命令

npm test

我们可以看到以下结果

cmd-markdown-logo

发布module到NPM

现在我们的模块完成了,但要发布到NPM,登记成功才算完成。发布模块到npm需要注册一个npm账户,可以使用

npm adduser 命令添加一个账户,使用npm login在客户端登录存储凭证。password因为是shell操作,键入的时候不会出现**,正常现象,不用管,输入完毕不要忘记就行。

cmd-markdown-logo

接下来可以使用

npm publish

发布到NPM了。

最后,我们就可以使用

npm install module-name

安装制作好的npm模块。