使用 Yarn 安装依赖项时,node-modules
默认将它们放在目录中。
如何将其更改为 ie Laravelresources
文件夹?
Like.bowerrc
用于凉亭设置"directory": "resources/assets"
yarn install --modules-folder ./resources
更新: 密切关注这个 GitHub问题,因为这个功能不是很稳定。
更新 2:从Damien 下面的回答中,您可以添加--install.modules-folder "./resources"
到.yarnrc
文件中,这样您就不需要为每次后续调用不断传递命令行参数。请注意,双引号是必需的;没有这些,你会得到一个Invalid value type 1:25
或类似的错误。
然后,您可以提交.yarnrc
到源代码管理,以便项目中的其他开发人员可以自动使用相同的设置。
您可以创建一个包含以下内容的.yarnrc文件:
--modules-folder resources
这样每个yarn
命令都会有这个参数集。
使用纱线运行时,您需要执行以下操作:
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 )。这同样适用于使用 Oracle virtualbox 的 vagrant,因为如果从共享文件夹提供 node_modules,则“sendfile”-内核调用错误会导致 JS 和 CSS 文件在两者之间随机剪切。
第四,由于二进制不兼容的原因,node_modules 应该在虚拟机/图像中烘焙,而不是在卷共享文件夹中。Node.js 实际上是针对 c++ 库编译的,这意味着如果你运行 npm/yarn install 并将 node_modules 从 Mac 共享到 Docker(运行 Linux),你会得到 Segmentation Fault,因为 OSX 二进制文件与 Linux 二进制文件不兼容。如果您在主机上使用 Ubuntu,在容器上使用 Alpine Linux,或者使用不同的 Ubuntu 版本,Linux 到 Linux 也是如此。
根据Yarn Docspackage.json
,您可以在文件中指定目录
{
"directories": {
"lib": "path/to/lib/",
"bin": "path/to/bin/",
"man": "path/to/man/",
"doc": "path/to/doc/",
"example": "path/to/example/"
}
}
安装软件包时,您可以指定放置二进制文件、手册页、文档、示例等的确切位置。