2

我有一个 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 标志,以便同时传递给所有脚本?或者,如果您可以给我另一个建议以使这些命令更有条理,那也会很有用。谢谢。

4

1 回答 1

3

对于这个问题,我只能想到两种解决方案。

  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:

顺便说一句,我不知道如何在 Windows 机器上执行此操作!!!所以我假设您使用的是 Mac 或 GNU/Linux 操作系统。

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

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

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

注意:这里您必须提供dotev/config文件的完整路径。要获取config.js文件的完整路径,请转到dotenv目录并运行readlink -f config. 复制文件的完整路径并替换dotenv/config为上述别名。

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

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

"scripts": {
    "test": "node_test node_modules/.bin/jest"
}
于 2021-11-01T12:52:15.540 回答