创建包目录
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:mypackagemypackage-1.0.0.tgz
发布
你需要拥有npm账号,使用npm publish命令,这里不再多讲了,很少用到