从父目录运行 Yarn 任务

Rob*_*zak 4 javascript npm gulp yarnpkg

我有一个包含多个子项目的项目,其中之一是 JavaScript 项目。我想使用 JavaScript 项目作为整个项目的任务运行程序,gulp但我遇到了一些麻烦。

我的项目结构基本上是:

root 
     |_
       js-client 
                |_
                   package.json
                |_
                   node_modules
     |_
       go-server
Run Code Online (Sandbox Code Playgroud)

我已经确定.yarnrc可以用来指定不同的node_modules位置,因此我移动package.json到该root目录并创建了此.yarnrc文件:

--modules-folder client/node_modules
Run Code Online (Sandbox Code Playgroud)

现在,当我yarn install从根目录运行时,模块确实按照我的预期安装在指定位置,但当我运行时,yarn build出现此错误:

[09:46:17] Local modules not found in ~/Documents/Projects/root
[09:46:17] Try running: npm install
Run Code Online (Sandbox Code Playgroud)

我猜这意味着--modules-folder仅用作 的标志install,而不用作 的标志run。我想要做的事情是可能的,还是我只需要创建一个单独的纱线项目来运行任务?我宁愿不依赖 global 来完成此任务

Tim*_*Gee 5

答案是运行yarn--cwd

这会将纱线的工作目录更改为您指定的任何目录

因此,对于上面的示例,要从yarn build根目录运行,您可以键入:

yarn --cwd js-client build