开发并发布一个简单npm包的整个流程
第一步:创建一个新的文件夹 boming-util,在目录下执行命令 npm init -y,可以看到目录下多了一个名为 package.json 的文件(package.json 是遵循 CommonJS 规范的标准包描述文件)
{
"name": "boming-util", // 代表包的名称(别人下载这个包的时候的名称),和开发时该包存放的文件夹名称没有关系;包的名称不能重复,最好先去npm官方看看是否已经被占用
"version": "1.0.0",
"description": "",
"main": "index.js", // 此处表明模块的入口文件是index.js
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": ["boming", "boming-utils-utils"], // 搜索关键字,可能是npm官网的搜索关键字(不确定)
"author": "",
"license": "ISC"
}
第二步:接着创建 index.js 作为模块的入口文件(文件名与 package.json 中的 main 配置项保持一致)
function sayHi() {
console.log('Hi ~')
}
function sayHello() {
console.log('hello ~')
}
module.exports = {
sayHi,
sayHello
}
或者模块化拆分,在目录内创建 src/hi.js 和 src/hello.js 两个文件
function sayHi() {
console.log('Hi ~')
}
module.exports = {
sayHi
}
function sayHello() {
console.log('hello ~')
}
module.exports = {
sayHello
}

此时 index.js 的内容如下
const hi = require('./src/hi')
const hello = require('./src/hello')
module.exports = {
...hi,
...hello
}
第三步:编写包的说明文档(Markdown)
第四步:npm官网注册好账号,在本地终端登录 npm login,注意登录前先用 nrm ls 检查下包下载服务器是否为官方服务器,如果使用淘宝等第三方镜像,需更换回官方
C:\Users\28624\Desktop>nrm use npm
SUCCESS The registry has been changed to 'npm'.
C:\Users\28624\Desktop>nrm ls
* npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
huawei ------- https://repo.huaweicloud.com/repository/npm/
C:\Users\28624\Desktop>npm login
Username: pandaball95
Password:
Email: (this IS public) pandaball95@gmail.com
Logged in as pandaball95 on https://registry.npmjs.org/.
第五步:将终端切换到包的根目录,运行 npm publish,注意包名不能重复,所以发布前建议去官网查重
C:\Users\28624\Desktop>cd boming-util
C:\Users\28624\Desktop\boming-util>npm publish
npm notice
npm notice package: boming-util@1.0.0
npm notice === Tarball Contents ===
npm notice 32B README.md
npm notice 119B index.js
npm notice 225B package.json
npm notice 91B src/hello.js
npm notice 82B src/hi.js
npm notice === Tarball Details ===
npm notice name: boming-util
npm notice version: 1.0.0
npm notice filename: boming-util-1.0.0.tgz
npm notice package size: 520 B
npm notice unpacked size: 549 B
npm notice shasum: 3cb1e10961656f1480e84d6515265a91848f4900
npm notice integrity: sha512-21DYjSyOX3UOj[...]9/vbFeg+lGNmg==
npm notice total files: 5
npm notice
npm notice Publishing to https://registry.npmjs.org/
+ boming-util@1.0.0
发布成功后,可以在官网看到
第六步:删除已经发布的包,使用 npm unpublish 包名 --force 命令,注意:
① npm unpublish 只能删除 72 小时以内发布的包
② npm unpublish 删除的包,在 24 小时内部允许重复发布
③ 发布包的时候要慎重,尽量不要往 npm 上发布没有意义的包
C:\Users\28624\Desktop\boming-util>npm unpublish boming-util --force
npm WARN using --force Recommended protections disabled.
- boming-util

浙公网安备 33010602011771号