使用npm作为构建工具来分发命令行参数

时间:2019-02-03 04:15:12

标签: node.js npm command-line-arguments package.json npm-scripts

我有一个npm软件包来管理我的github存储库,并具有构建我的可发布npm软件包的脚本。由于软件包的性质,已发布的npm软件包(发行版)不能与我的存储库的软件包(源)匹配。我正在接近测试驱动的开发和持续集成,但是正在逐步学习它。到目前为止,这是电流,它可以完美运行:

从命令行:

> npm run patch
  1. 运行npm version patch
    1. 这将调用源的preversion
      1. 清理发行版:npm run clean
      2. 运行测试:npm test
        1. 这将调用pretest
          • npm run build
        2. 运行发行版的测试
          • 失败:错误和流程结束
          • 成功:分支完成,
    2. 调用源的postversion
      • git push所有提交和标记
  2. 运行发行版的npm version patch
    1. 调用发行版的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脚本来弄清楚如何多次共享该参数。

0 个答案:

没有答案