我正在尝试自动化Node.js开源存储库的打包/发布/发布
我有以下脚本
-22 // 10 = -3
当我运行 "scripts": {
"build": "babel src/ --out-dir lib/",
"clean": "rm -rf lib/",
"lint": "eslint . --cache --fix",
"preversion": "yarn run lint && yarn run test:once",
"postversion": "git push && git push --tags",
"prepublishOnly": "yarn run clean && yarn run build && yarn run release:preview && cli-confirm \"Do you really want to release a new version? Please check the files that will be publicly released first.\"",
"release:preview": "npm pack && tar -xvzf *.tgz && rm -rf package *.tgz",
"release": "yarn bump --prompt --commit --tag --push",
"test": "NODE_ENV=test jest --watch",
"test:once": "NODE_ENV=test jest",
"test:coverage": "NODE_ENV=test jest --coverage"
},
时,我得到提示,并选择要修改的版本(次要版本,补丁程序等),然后提交,标记并推送到我的github存储库。包装/发布部分的一切都很好。
当我运行yarn release
或npm publish
(应该做与我想做的事情相同)时,我循环两次,第一次运行良好:调用了yarn publish --non-interactive
脚本,但是又执行了一次,但失败,因为该版本已存在于NPM上。
我不明白为什么它会循环两次,prepublishOnly
应该只被调用一次,不是吗?我一定做错了。
这是完整的日志:
prepublishOnly