我有yarn test
,它实际上由两个子命令yarn test:root && yarn test:packages
组成。两者都运行jest(但是包使用lerna exec间接执行)。我希望能够从终端输入yarn test -t=Pattern
并让两个子命令追加-t=Pattern
到最后。 lerna exec -- "yarn test"
似乎无法做到这一点。
我有一个monorepo,使用lerna exec
在每个lerna包上运行yarn test
。
假设:
"test": "yarn run test:packages $@ && yarn run test:root $@",
"test:packages": "lerna exec -- yarn test $@", // No args passed
"test:root": "jest ./tests/Storyshots.jest.js $@", // Args passed
我希望能够做一些像
这样的事情 yarn test --updateSnapshot
和--updateSnapshot
附加到yarn test
,通过lerna exec运行
使用test:root
使用常规npm脚本(请参阅$@
)可以正常工作。 lerna docs没有提及任何方法。
更新
我认为最简单的方法是编写一个组成args和命令的脚本。这将需要在所有lerna包中使用。
答案 0 :(得分:1)
您可以使用--
将命令行args传递给内部命令。使用--
将表示当前命令的选项结束,并允许将选项传递给内部命令。
因此,在这种情况下,我们需要逃避三遍:
测试:软件包
测试:根
yarn test -- -- -- -t=Pattern
答案 1 :(得分:0)
要附加args,您只需使用lerna exec 'yarn test --updateSnapshot'