在运行“yarn run”时将参数传递给“node”可执行文件



node可以使用各种选项启动。特别有趣的是--inspect标志:

node --inspect node_modules/.bin/jest some.spec.js

是否可以以某种方式将--inspect标志传递给yarn run?例如:

yarn run test --inspect some.spec.js 

npm run也有类似的问题,似乎是不可能的。

一般来说,yarn run ...不支持将任意参数传递给 NodeJS。但是,--inspect标志是一个例外,具体取决于您的 Yarn 版本。

截至 2022 年 3 月,最新版本的 Yarn 支持 yarn run 命令的--inspect--inspect-brk参数。您的问题的答案现在是"是",以下内容将起作用:

yarn run --inspect some.spec.js

对于旧版本的 Yarn(甚至 NPM),有几个选项。

首先,您可以使用 NODE_OPTIONS 环境变量将参数传递给 NodeJS。例如

export NODE_OPTIONS="--inspect"
yarn run test some.spec.js

然后在 package.json 中,您可以定义一个脚本来利用这一点:

"scripts": {
  "test": "jest",
  "test:inspect": "NODE_OPTIONS='--inspect' yarn run test"
}

其次,正如你提到的,你可以直接使用 NodeJS,

node --inspect ./node_modules/jest-cli/bin/jest.js some.spec.js

对于旧版本的 Yarn,这可能是您仅有的两个选择。但是,这两个选项都适用于 NPM 和 Yarn。

或者,

您可以使用npx和传递带有-n--node-arg标志的节点参数npx -n=--inspect-brk jest

npx在处理别名命令的 CLI 或包时感觉更直观。

最新更新