当Yarn用于安装依赖项时,默认情况下会将它们放在node-modules
目录中。
如何将其更改为Laravel resources
文件夹?
与.bowerrc
一样,bower用于设置"directory": "resources/assets"
答案 0 :(得分:22)
yarn install --modules-folder ./resources
<强>更新强> 请关注此GitHub Issue,因为此功能不太稳定。
更新2 :从下面的Damien's回答,您可以将--install.modules-folder "./resources"
添加到.yarnrc
file,这样您就不需要继续传递命令行参数在每个后续调用中。请注意,需要双引号;如果没有这些,您将收到Invalid value type 1:25
或类似的错误。
然后,您可以将.yarnrc
提交给源代码控制,以便项目中的其他开发人员可以自动使用相同的设置。
答案 1 :(得分:20)
您可以使用以下内容创建 .yarnrc 文件:
--modules-folder resources
这样每个yarn
命令都会设置此参数。
答案 2 :(得分:0)
使用 yarn run 时,您需要执行以下操作:
ln -sf /opt/myproject/node_modules
yarn config set -- --modules-folder /opt/myproject/node_modules
似乎 yarn run 不使用 .yarnrc
第三,将源代码放在单独的目录下是一个好主意,该目录作为 Docker 卷或 Vagrant 共享文件夹与 node_modules 或供应商分开安装。在 Docker 上,卷安装在您的当前目录上(因此您不应该例如 mount . -> /app,而是 src -> /app/src )。由于“sendfile”-kernel 调用错误,如果从共享文件夹提供 node_modules,则会导致 JS 和 CSS 文件在两者之间随机剪切。
第四,由于二进制不兼容的原因,node_modules 应该在虚拟机/镜像中烘焙,而不是在卷共享文件夹中。 Node.js 实际上是针对 c++ 库编译的,这意味着如果您运行 npm/yarn install 并将 node_modules 从 Mac 共享到 Docker(运行 Linux),您将收到 Segmentation Fault,因为 OSX 二进制文件与 Linux 二进制文件不兼容。如果您使用例如,Linux 到 Linux 也是如此。主机上的 Ubuntu 和容器上的 Alpine Linux,或不同的 Ubuntu 版本。
答案 3 :(得分:-3)
根据Yarn Docs,您可以在package.json
文件
{
"directories": {
"lib": "path/to/lib/",
"bin": "path/to/bin/",
"man": "path/to/man/",
"doc": "path/to/doc/",
"example": "path/to/example/"
}
}
安装软件包时,您可以指定放置二进制文件,手册页,文档,示例等的确切位置。