如何更改Yarn默认包目录?

Mla*_*vic 20 config laravel yarnpkg

当Yarn用于安装依赖项时,它node-modules默认将它们放在目录中.

如何将其更改为Laravel resources文件夹?
喜欢.bowerrc用于凉亭设置"directory": "resources/assets"

小智 23

yarn install --modules-folder ./resources
Run Code Online (Sandbox Code Playgroud)

更新: 关注此GitHub 问题,因为此功能不太稳定.

更新2:从下面的Damien的答案中,您可以添加--install.modules-folder "./resources".yarnrc文件中,这样您就不需要为每个后续调用不断地传递命令行参数.请注意,需要双引号; 没有这些,你会得到一个Invalid value type 1:25或类似的错误.

然后,您可以提交.yarnrc源控件,以便项目中的其他开发人员可以自动使用相同的设置.

  • 对于记录:您可以使用`.yarnrc`文件使用`--install.modules-folder resources`设置此选项([文档](https://yarnpkg.com/en/docs/yarnrc)) (6认同)
  • 这是一个可怕的解决方案.这样的事情需要是全局选项,而不是一次性命令行开关.令我感到困惑的是,有多少这些node.js解决方案似乎是在非网络化的孤岛环境中设计的.许多联网系统将用户目录放在网络共享上.但是GLOBAL安装是在系统级别,而不是用户级别.那里需要一个"yarn global install whatever-app",它不需要用户覆盖命令行上的modules文件夹.看起来我将提交另一个github pull请求拒绝.哈哈 (3认同)

小智 21

您可以使用以下内容创建.yarnrc文件:

--modules-folder resources
Run Code Online (Sandbox Code Playgroud)

这样每个yarn命令都会设置此参数.

  • 只是想补充一点,即使这被推翻了,它也是**正确**.此外,您可以添加范围:`--install.module-folder`将仅为`install`命令设置此值,而` - *.modules-folder`应该适用于每个命令(因此_should_表现相同的行为作为第一个命令) (3认同)