我有一个npm软件包来管理我的github存储库,并具有构建我的可发布npm软件包的脚本。由于软件包的性质,已发布的npm软件包(发行版)不能与我的存储库的软件包(源)匹配。我正在接近测试驱动的开发和持续集成,但是正在逐步学习它。到目前为止,这是电流,它可以完美运行:
从命令行:
> npm run patch
npm version patch
preversion
,
npm run clean
npm test
pretest
,
npm run build
postversion
:
git push
所有提交和标记npm version patch
postversion
npm publish
(源)package.json
{
...,
"scripts": {
"patch": "npm version patch && cd dist && npm version patch",
"minor": "npm version minor && cd dist && npm version minor",
"major": "npm version major && cd dist && npm version major",
"preversion": "npm run clean && npm test",
"clean": /* clean commands */,
"pretest": "npm run build",
"test": "cd dist && npm test",
"postversion": "git push origin --all && git push origin --tags"
},
...
}
(发行版)package.json
{
...,
"scripts": {
"test": /* test commands */,
"postversion": "npm publish"
},
...
}
我想要一个更简单的界面。如您所见,我必须npm run <major|minor|patch>
。相反,我想通过传递给两个npm版本的命令行arg来npm run dist
。
示例:
> npm run dist patch
--------------------
<<< npm version patch
<<< cd dist && npm version patch
> npm run dist major
--------------------
<<< npm version major
<<< cd dist && npm version major
是否可以将命令行参数传递到树上?或者,更好的是,我可以在单个脚本条目中的各个命令之间分配命令行参数吗?我可以轻松地向scripts
添加一个接受命令行参数的条目,但是似乎无法通过编写单独的.js
脚本来弄清楚如何多次共享该参数。