npm包发布

163 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第7天,点击查看活动详情

本次的目的是将之前开发的npm包上线, 我会总结一下我发布过程中遇到的问题

指定解释器

index.ts 文件的头部 也就是第一行添加#!/user/bin/env node, 运行tsc打包。

修改package.json文件

修改bin选项,package.json 文件的bin可以让我们定义一些自定义的命令。

"bin": {
  "os": "./bin/index.js"
},

修改之后运行npm link测试(这里npm link pnpm link -g 生成的文件有一些区别),尝试运行命令 os -h , 结果如下图。这样可以防止命令过长没有记住或者拼写错误。

image.png

发布

换源

在之前下载node后为了在国内下载npm包更快速,我将源切到了淘宝的源, 现在切回来(发布完成之后如果可以切回去):

npm set registry https://registry.npmjs.org/

排除一些不必要文件

创建 .npmignore 文件, 将运行时不必要的文件排除。

node_modules/
src/
.gitignore
tsconfig.json

npm 登录

运行 npm adduser, 创建或验证<username>在指定注册表中命名的用户,然后将凭据保存到.npmrc文件。如果未指定注册表,则将使用默认注册表。如果没有npm的账号,可以去申请一个。

www.npmjs.com/

发布

运行 npm publish发布包,如果当前发布的版本有误, 可以运行 npm unpublish 包名@版本号 取消发布。package.json 文件的 version 的值控制的包的版本。

测试``

比如:我这里的包名是openservers。测试以我的包为例:运行 npm i openservers -g, 安装完成后, 运行 os -h, 结果如下 image.png

注意: 如果您的包运行的时候是直接打开文件, 请检查 index.ts 文件的第一行是否添加 #!/user/bin/env node