推荐一个发布npm包的工具?

自己发布 npm 包(上传代码到npm仓库)的时候,需要手动输入命令,一是操作繁琐,二是不方便自动化。

想要问下有没有好的命令行工具,或者相关的库,帮助开发者简化发布 npm 包流程?

阅读 2.6k
3 个回答

可以在 package.json 中的 scripts 下添加一个脚本命令,示例如下:

{
  "scripts": {
    "release": "npm run build && npm publish"
  }
}

也可以根据需要加上其他命令,例如更新版本号:

npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]

然后执行 release 即可

npm run release

就npm发包来说已经简单到不能再简单了,只需要在项目文件夹执行 npm publish 即可发布,但是我想你应该是觉得每次发布都需要手动修改版本号比较麻烦把, 想通过一个脚本来确认每次发布的版本,以及后续的处理。这可以通过 npm script 实现。

下面这个是一个vscode 插件的npm script, 每次发布的时候,可以直接运行 npm run pub 默认发布patch版本, 也可以执行npm run pub:minor 发布feture版本等等, 通过npm hooks来自动化执行其他脚本,比如发布前lint 和 重新构建,发布后打tag并且自动push 等。或者你可以像vue一样,自己写一个自动化脚本 https://github.com/vuejs/vue/tree/main/scripts

  "scripts": {
    "prebuild": "npx browserslist@latest --update-db",
    "build": "yarn run build:webview && yarn run build:extension",
    "build:extension": "cross-env NODE_ENV=production webpack --mode production --config ./script/webpack.extension.config.js",
    "build:webview": "cross-env NODE_ENV=production webpack --mode production --config ./script/webpack.config.js",
    "clear": "rm -rf dist",
    "compile": "yarn run clear && yarn run build",
    "dev": "yarn run dev:webview & yarn run dev:extension",
    "dev:extension": "cross-env NODE_ENV=production webpack -w --config ./script/webpack.extension.config.js",
    "dev:webview": "cross-env NODE_ENV=development webpack -w --config ./script/webpack.config.js",
    "lint": "eslint src --ext ts,tsx",
    "pub": "npm run pub:patch",
    "pub:major": "npm version major",
    "pub:minor": "npm version minor",
    "pub:patch": "npm version patch",
    "preversion": "npm run lint && npm run build",
    "postversion": "vsce publish --yarn && git push && git push --tag",
    "vscode:prepublish": "npm run lint && yarn run compile",
    "vsix": "vsce package -o muse-$npm_package_version.vsix && code --install-extension muse-$npm_package_version.vsix"
  },

不理解,还需要怎么简化?

npm run build
npm run publish
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题