做 nodejs 的开发基本都会用到 npm 都包,那么如何在 npmjs 上发布并维护一个包呢?
编写包
一个包应该至少包含三个文件,package.json,readme.md 和代码文件。虽然 readme.md 文件是非必需的,但一个清晰的文档文件能节省使用者很多事情,建议每一个发包者都应该写好 readme.md 文件。
readme.md 文件:主要是关于这个包的说明及用法
package.json 文件:通过 npm init
初始化得到,里面包含了一些必要的信息,得到的结构如下
{
"name": "npmdemo",
"version": "0.0.1",
"description": "npmdemo",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"npm",
"demo"
],
"author": "tourcoder",
"license": "ISC"
}
exports.hello = function hello(name){
console.log("hello "+ name);
}
发布包
增加用户
执行命令 npm adduser
,这时候会要求输入用户名密码等信息,将之前在 NPMJS 上注册的信息填写进去,完成后得到如下信息
Username: tourcoder
Password:
Email: (this IS public) [email protected]
Enter one-time password from your authenticator app: 123123
Logged in as tourcoder on https://registry.npmjs.org/.
如果在 NPMJS 上面的账户开启了二次认证,会像上面第四行的信息一样出现要求输入二次验证的内容。
发布
在终端中直接输入 npm publish
等待校验后,会发布到 NPMJS 上,发布成功的形式如下
npm notice
npm notice 📦 [email protected]
npm notice === Tarball Contents ===
npm notice 260B package.json
npm notice 70B app.js
npm notice === Tarball Details ===
npm notice name: npmdemo
npm notice version: 0.0.1
npm notice package size: 400 B
npm notice unpacked size: 369 B
npm notice shasum:
npm notice integrity:
npm notice total files: 2
let sayhello=require('npmdemo');
npm notice
+ [email protected]
包的名字有时候是 @orgname/packagename
,需要缴费开启私有包库,如果不想付费是公开的包,则执行 npm publish --access public
来发布。
更新包
在 NPMJS 是没有更新概念的,它的更新就是发布一个更新的版本,比如更改了上面包的代码,再次使用前面的发布流程再次发布一次即可。
需要特别注意:需要把 package.json 中的版本号更改下,这样就说明已经更新了该包。
删除包
NPMJS 似乎是不能够删除包的,而且根据包发布的时间长短,取消已经发布的包的方式也不一样,具体看这里的官方说明。
如何使用包
npm install 包名
具体看包的使用说明即可,这时可以看出 readme.md 文件的重要了。
除了 NPM 之外,facebook 出了一个 yarn,官方网站为 https://yarnpkg.com
它的建包发包过程可以看这里
也是发布在 NPMJS 上的哦。
> 可在 Twitter/X 上评论该篇文章或在下面留言(需要有 GitHub 账号)