如何只将依赖项放入 yarn 的特定文件夹中?

How do I only put dependencies into a specific folder for yarn?

背景

我一直在使用 bower 来处理依赖项,但现在我想迁移到 yarn。我遇到的主要障碍是从下面的 .bowerc 文件迁移到 .yarnrc

.bowerrc

{
     "directory": "src/vendors"
}

问题是我可以创建一个 .yarnrc 文件,如下所示,它将 any 依赖项放入 src/vendors,但是 包括 devDependencies。

.yarnrc

--modules-folder src/vendors

问题

如何只将 dependencies 放入 src/vendors 并将 devDependencies 放入 node_modules

您可以使用 --production option 告诉 yarn 您要安装哪些依赖项;如果设置为 true 它只会安装 dependencies.

因此,在您的 src 文件夹中创建一个包含以下内容的 .yarnrc 文件:

--modules-folder vendors
--production true

并在您的项目目录中的 .yarnrc 文件中,将 --production 设置为 false:

--production false

文件夹结构:

.
├── package.json
├── src
│   └── .yarnrc
└── .yarnrc

完成与上述答案相同的事情的另一种方法(但没有 .yarnrc 文件)是将两个不同的脚本添加到 package.json,大致如下:

  "scripts": {
      "install-depends": "yarn install --production=true --modules-folder ./src/vendors",
      "install-devDepends": "yarn install --production=false"
   }

然后你只需按相同的顺序 运行 它们(如果你反过来做,它会清除 node_modules:

中的所有内容
  1. yarn run install-depends
  2. yarn run install-devDepends