一起养成写作习惯!这是我参与「掘金日新计划 · 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 , 结果如下图。这样可以防止命令过长没有记住或者拼写错误。
发布
换源
在之前下载node后为了在国内下载npm包更快速,我将源切到了淘宝的源, 现在切回来(发布完成之后如果可以切回去):
npm set registry https://registry.npmjs.org/
排除一些不必要文件
创建 .npmignore 文件, 将运行时不必要的文件排除。
node_modules/
src/
.gitignore
tsconfig.json
npm 登录
运行 npm adduser, 创建或验证<username>在指定注册表中命名的用户,然后将凭据保存到.npmrc文件。如果未指定注册表,则将使用默认注册表。如果没有npm的账号,可以去申请一个。
发布
运行 npm publish发布包,如果当前发布的版本有误, 可以运行 npm unpublish 包名@版本号 取消发布。package.json 文件的 version 的值控制的包的版本。
测试``
比如:我这里的包名是openservers。测试以我的包为例:运行 npm i openservers -g, 安装完成后, 运行
os -h, 结果如下
注意: 如果您的包运行的时候是直接打开文件, 请检查 index.ts 文件的第一行是否添加 #!/user/bin/env node