如何将命令行参数传递给package.json脚本中的playwright命令?
问题描述
我的package.json中有如下脚本:
"test:debug": "yarn build && playwright test --project=chromium-debug -c build && ts-node ./src/logs/generateLog.ts"
当我执行命令 yarn test:debug -g 'myTestName' 时,终端实际执行的命令是:
yarn build && playwright test --project=chromium-debug -c build && ts-node ./src/logs/generateLog.ts -g 'myTestName'
但我期望执行的命令是:
yarn build && playwright test --project=chromium-debug -c build -g 'myTestName' && ts-node ./src/logs/generateLog.ts
请问该修改脚本的哪部分才能实现这个需求?
解决方案
把脚本里的playwright test命令部分加上$@,修改后的脚本如下:
"test:debug": "yarn build && playwright test --project=chromium-debug -c build $@ && ts-node ./src/logs/generateLog.ts"
原理说明
$@是Shell中的特殊变量,它会捕获你执行yarn test:debug时传入的所有命令行参数(比如这里的-g 'myTestName'),并将这些参数直接插入到playwright test命令的末尾,这样参数就会被正确传递给playwright命令,而不会被误传到后面的ts-node命令中。
内容的提问来源于stack exchange,提问作者Alon
相关产品推荐
相关产品推荐

