为“devDependencies”和“dependencies”指定不同的 Yarn 安装路径

Posted

技术标签:

【中文标题】为“devDependencies”和“dependencies”指定不同的 Yarn 安装路径【英文标题】:Specify different Yarn install paths for ‘devDependencies’ and ‘dependencies’ 【发布时间】:2017-08-18 03:25:30 【问题描述】:

我正在使用 Yarn 来管理我的项目的依赖项。我有开发所需的开发人员依赖项 (devDependencies) 和我的项目运行所需的前端依赖项 (dependencies)。我使用 Git 来管理我的版本控制。

Yarn 默认似乎在node_modules 目录中安装all 依赖项。这对于开发人员依赖项来说很好,但是因为我使用的是 Git,所以我通常会忽略这个目录。但是,我想提交我的前端依赖项并将它们与开发人员依赖项隔离开来。

我想知道是否可以将 Yarn 配置为将所需的依赖项安装在与开发人员依赖项不同的目录中。例如:

devDependencies 将安装在 /node_modules dependencies 将安装在 /vendor

Bower 在 .bowerrc 文件中具有类似的功能,但我找不到 Yarn 的类似功能。我曾考虑将 Bower 与 Yarn 一起用于我的前端依赖项,但这似乎违背了使用 Yarn 的目的。

【问题讨论】:

你在这方面有进步吗? --cwd 最近被添加到 Yarn 让你做这种事情。 github.com/yarnpkg/yarn/pull/4174 为什么要在 repo 中提交前端依赖项?我可以想到这样做的好坏理由。是因为您想直接从 gh-pages 分支中的存储库中提供静态 html 页面吗?您是否试图确保您的依赖项的代码永远不会改变? 【参考方案1】:

当你将一个包安装到你的仓库时,你可以通过在它的末尾指定 -D 来安装它们,例如 yarn install some-package -D,这会将该包添加到 devDependencies在你的 package.json 文件中的树,如果你没有指定 -D 包将被添加到树中 dependencies 我相信这就是依赖分离的工作原理

【讨论】:

以上是关于为“devDependencies”和“dependencies”指定不同的 Yarn 安装路径的主要内容,如果未能解决你的问题,请参考以下文章

dependencies和devDependencies两者区别

如何仅更新 devDependencies?

谈谈vue2.0的dependencies和devDependencies

devDependencies和dependencies的区别

package.json中的devDependencies和dependencies有啥区别?

devDependencies和dependencies的区别