如何在 npm 脚本中使用 package.json 的 npm 配置变量

How to use npm config variables of package.json in npm scripts

我有一个 npm 项目,我在调用 node.js 时使用了很多标志,所以我的 package.json 脚本有点混乱,像这样:

"scripts": {
        "test": "node --use_strict -r dotenv/config --experimental-vm-modules node_modules/.bin/jest",
        "testwatch": "node --use_strict -r dotenv/config --experimental-vm-modules node_modules/.bin/jest -watchAll",
        "start": "node --use_strict -r dotenv/config --experimental-vm-modules ./src/index"
    },

有没有办法在 package.json 文件的单个参数中指定 node.js 标志,以便它同时传递给所有脚本?或者,如果您能给我另一个建议,让这些命令更有条理,那也会很有用。谢谢

这个问题我只能想到两个解决方案。

  1. 使用 package.json 配置变量
  2. 使用别名

解决方案 1:

您可以通过$npm_package_config_<variable-name>

访问脚本中的配置变量

package.json 文件

"config": {
    "testflags": "--use_strict -r dotenv/config --experimental-vm-modules"
},
"scripts": {
    "test": "node $npm_package_config_testflags node_modules/.bin/jest"
}

解决方案 2:

By the way I don't know How to do this on windows machine!!! So I'm assuming you're using Mac or GNU/Linux OS.

在您的 shellrc 文件中创建别名(例如,~/.bashrc 用于 bash 和 ~/.zshrc 用于 zsh 等)。

在您的 ~/.bashrc~/.zshrc 文件或您拥有的任何 shellrc 文件中添加以下内容。

alias node_test='node --use_strict -r dotenv/config --experimental-vm-modules'

注意: 此处您必须提供 dotev/config 文件的完整路径。要获得 config.js 文件的完整路径,请转到 dotenv 目录和 运行 readlink -f config。复制文件的完整路径并替换上面别名中的dotenv/config

然后保存文件并在终端中通过 运行ning source ~/.bashrc 获取它。

现在在您的 package.json 文件中:

"scripts": {
    "test": "node_test node_modules/.bin/jest"
}