关于node.js:从npm脚本获取版本级别

Get version level from npm script

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

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

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


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

如果我的package.json包含:

1
2
3
"scripts": {
 "preversion":"node log_argv"
}

并且log_argv.js包含:

1
2
3
4
5
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,然后看到输出:

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