当 运行ning “yarn 运行” 时将参数传递给 “node” 可执行文件
Pass arguments to “node” executable when running “yarn run”
节点可以通过各种选项启动。特别有趣的是 --inspect
标志:
node --inspect node_modules/.bin/jest some.spec.js
是否可以通过某种方式将 --inspect
标志传递给 yarn run
?例如:
yarn run test --inspect some.spec.js
有一个 similar question for npm run
,似乎不可能。
一般来说,yarn run ...
不支持向 NodeJS 传递任意参数。但是,--inspect
标志是一个例外,具体取决于您的 Yarn 版本。
截至 2022 年 3 月,最新版本的 Yarn 支持 yarn run command 的 --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 或包时感觉更直观。
节点可以通过各种选项启动。特别有趣的是 --inspect
标志:
node --inspect node_modules/.bin/jest some.spec.js
是否可以通过某种方式将 --inspect
标志传递给 yarn run
?例如:
yarn run test --inspect some.spec.js
有一个 similar question for npm run
,似乎不可能。
一般来说,yarn run ...
不支持向 NodeJS 传递任意参数。但是,--inspect
标志是一个例外,具体取决于您的 Yarn 版本。
截至 2022 年 3 月,最新版本的 Yarn 支持 yarn run command 的 --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 或包时感觉更直观。