27

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

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

4

4 回答 4

28
yarn install --modules-folder ./resources

更新: 密切关注这个 GitHub问题,因为这个功能不是很稳定。

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

然后,您可以提交.yarnrc到源代码管理,以便项目中的其他开发人员可以自动使用相同的设置。

于 2016-12-09T15:37:15.937 回答
26

您可以创建一个包含以下内容的.yarnrc文件:

--modules-folder resources

这样每个yarn命令都会有这个参数集。

于 2017-10-31T10:49:56.990 回答
0

使用纱线运行时,您需要执行以下操作:

   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 也是如此。

于 2021-05-13T07:05:12.843 回答
-2

根据Yarn Docspackage.json ,您可以在文件中指定目录

{
  "directories": {
    "lib": "path/to/lib/",
    "bin": "path/to/bin/",
    "man": "path/to/man/",
    "doc": "path/to/doc/",
    "example": "path/to/example/"
  }
}

安装软件包时,您可以指定放置二进制文件、手册页、文档、示例等的确切位置。

于 2016-11-08T13:52:21.860 回答