开发并发布一个简单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
}

npm包

此时 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
posted @ 2025-08-08 15:20  鹿鹿脖子长  阅读(17)  评论(0)    收藏  举报