【问题标题】:Get version level from npm script从 npm 脚本获取版本级别
【发布时间】:2019-10-25 05:08:37
【问题描述】:

我想写npm scripts,它在通过npm version 碰撞包版本时运行。我不打算通过npm run _____ 直接调用我的脚本;相反,它们应该由 npm 在调用 npm version ____(或 preversionpostversion 等)时调用。

如何在我的脚本中引用版本级别参数?

例如如果我的脚本以preversion 运行并从npm version major 调用,我的脚本如何引用major

【问题讨论】:

  • 对不起,您能解释一下我如何使用该问题的解决方案来回答我的问题吗?我不是在编写由npm run myScript 直接调用的任意脚本;而是在 version 生命周期挂钩上调用 myScriptnpm version 命令已经接受了一个参数并对其进行了自己的验证。我只是想在myScript 中引用该参数的值。

标签: node.js npm


【解决方案1】:

在我的脚本中,我可以参考process.env.npm_config_argv。它的值是一个 JSON 字符串,其中包含 npm 的原始参数。

如果我的 package.json 包含:

"scripts": {
  "preversion": "node log_argv"
}

log_argv.js 包含:

console.log('Type:', typeof process.env.npm_config_argv);
console.log('Value:', process.env.npm_config_argv);
console.log('Original npm args:', JSON.parse(process.env.npm_config_argv).original);

throw new Error("aborting");

然后我运行npm version patch,然后我看到输出:

Type: string
Value: {"remain":["patch"],"cooked":["version","patch"],"original":["version","patch"]}
Original npm args: [ 'version', 'patch' ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 2022-08-14
    • 1970-01-01
    • 2019-09-06
    • 2023-02-23
    • 2019-12-04
    • 2011-12-06
    相关资源
    最近更新 更多