【问题标题】:Run Yarn tasks from a parent directory从父目录运行 Yarn 任务
【发布时间】:2019-07-23 13:49:29
【问题描述】:

我有一个项目,其中包含几个子项目,其中一个是 JavaScript 项目。我想通过 gulp 将 JavaScript 项目用作整个项目的任务运行器,但我遇到了一些麻烦。

我的项目结构本质上是:

root 
     |_
       js-client 
                |_
                   package.json
                |_
                   node_modules
     |_
       go-server

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

--modules-folder client/node_modules

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

[09:46:17] Local modules not found in ~/Documents/Projects/root
[09:46:17] Try running: npm install

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

【问题讨论】:

    标签: javascript npm gulp yarnpkg


    【解决方案1】:

    答案是用--cwd运行yarn

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

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

    yarn --cwd js-client build

    【讨论】:

      【解决方案2】:

      你的 package.json 中有构建脚本吗?

      如果没有,我会将其添加到您的 package.json 以覆盖默认行为并使用类似以下内容的脚本启动脚本:cd client && yarn build

      编辑:

      root
      --package.json (with the build script)
      --client
      

      【讨论】:

      • 是的,但我希望能够从客户端文件夹外部运行它
      • 你能分享你的 package.json 吗?
      猜你喜欢
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多