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

标签 node.js npm package.json

我有一个 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. 使用别名

解决方案一:

您可以通过 $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"
}

方案二:

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在上面的别名中。

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

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

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

关于node.js - 如何在 npm 脚本中使用 package.json 的 npm 配置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69234337/

相关文章:

node.js - 如果不存在,如何使用 Browserify 创建新目录?

security - npm 审计是否有替代 yarn 的方法?

css - 是否可以在 Web 应用程序中仅提取和捆绑必要的 css 类

node.js - Node 快车 : does order of calls matter?

node.js - 带有nodejs的socket.io找不到所需的js文件

python - npm 使用 2 个版本的 Python

javascript - 如何在 package.json 的项目目录中为 gulp 文件创建路径

node.js - 在不使用额外的 NPM 包的情况下检查 package.json 是否在 shell 脚本中具有特定名称的脚本

node.js - 使用 --save 进行 npm install 不会保存在 package.json 中

node.js - 如何集成 Koa、Passport 和 MongoDB?