如何开发NPM包

Posted on 2018-10-11 20:17  Rock Wang  阅读(291)  评论(0编辑  收藏  举报

创建包目录

D:\>mkdir mypackage && cd mypackage
D:\mypackage>npm init --yes

进入mypackage目录,你会看到一个package.json文件,其内容如下:

{
  "name": "mypackage",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

其中"main"指向了你的包的入口点,当别人使用你的模块时require("mypackage"),实际返回的是"main"指向的"index.js"文件中的module exports

完成包功能

在mypackage目录下创建index.js文件,并添加如下内容:

"use strict";

    module.exports = function sum(a, b) {
        return a+b;
    }

包的内容很简单,就是完成一个加法运算

测试

新建一个项目mypackage_test用于测试

D:\>mkdir mypackage_test && cd mypackage_test

D:\mypackage_test>npm init --yes

 

(划重点)在测试阶段,如何不用每次改动都重新编译并发布到NPM

方法1:绝对路径引用

D:\mypackage_test>npm install D:/mypackage

此时查看package.json,其内容如下(注意粗体部分):

{
  "name": "mypackage_test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "mypackage": "file:../mypackage"
  }
}

此时再到node_modules目录下查看,目录结构如下

方法2:使用“npm link”

D:\mypackage>npm link
D:\mypackage_test>npm link mypackage

此时再到node_modules目录下去验证

方法3:

D:\mypackage>npm pack
mypackage-1.0.0.tgz

此时会在mypackage目录下生成mypackage-1.0.0.tgz文件

然后到mypackage_test目录下执行命令

D:\mypackage_test>npm install D:\mypackage\mypackage-1.0.0.tgz

 

发布

你需要拥有npm账号,使用npm publish命令,这里不再多讲了,很少用到