如何更改 Yarn 默认包目录?
How to change Yarn default packages directory?
当使用 Yarn 安装依赖时,它默认将它们放在 node-modules
目录中。
如何将其更改为 Laravel resources
文件夹?
像 .bowerrc
用于 bower 设置 "directory": "resources/assets"
根据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/"
}
}
安装包时,您可以指定放置二进制文件、手册页、文档、示例等的确切位置。
yarn install --modules-folder ./resources
更新:
请密切关注此 GitHub Issue,因为此功能不太稳定。
更新 2: 来自 Damien's answer below, you can add --install.modules-folder "./resources"
to a .yarnrc
file 这样您就不需要为每个后续调用连续传递命令行参数。注意双引号是必须的;没有这些,您将收到 Invalid value type 1:25
或类似错误。
然后您可以将 .yarnrc
提交到源代码管理,以便项目中的其他开发人员可以自动使用相同的设置。
您可以创建一个 .yarnrc 文件,内容如下:
--modules-folder resources
这样每个 yarn
命令都会设置此参数。
使用 yarn 运行 时,您需要执行以下操作:
ln -sf /opt/myproject/node_modules
yarn config set -- --modules-folder /opt/myproject/node_modules
yarn 运行 似乎没有使用 .yarnrc
第三,最好将您的源代码放在单独的目录下,作为 Docker 卷或与 node_modules 或供应商分开的 Vagrant 共享文件夹。在 Docker 上,卷挂载在您当前的目录上(因此您不应该挂载 . -> /app,而是 src -> /app/src )。这同样适用于 Oracle virtualbox 的 vagrant,因为“sendfile”-kernel 调用错误导致 JS 和 CSS 文件在共享文件夹中提供 node_modules 时被随机剪切。
第四,由于二进制不兼容的原因,node_modules 应该在虚拟机/映像中烘焙而不是在卷共享文件夹中。 Node.js 实际上是针对 c++ 库编译的,这意味着如果您 运行 npm/yarn 安装并共享 node_modules 从 Mac 到 Docker (运行ning Linux),你会得到分段错误,因为 OSX 二进制文件与 Linux 二进制文件不兼容。如果您使用例如 Linux 到 Linux 也是如此Ubuntu 在主机上,Alpine Linux 在容器上,或不同的 Ubuntu 版本。
当使用 Yarn 安装依赖时,它默认将它们放在 node-modules
目录中。
如何将其更改为 Laravel resources
文件夹?
像 .bowerrc
用于 bower 设置 "directory": "resources/assets"
根据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/"
}
}
安装包时,您可以指定放置二进制文件、手册页、文档、示例等的确切位置。
yarn install --modules-folder ./resources
更新: 请密切关注此 GitHub Issue,因为此功能不太稳定。
更新 2: 来自 Damien's answer below, you can add --install.modules-folder "./resources"
to a .yarnrc
file 这样您就不需要为每个后续调用连续传递命令行参数。注意双引号是必须的;没有这些,您将收到 Invalid value type 1:25
或类似错误。
然后您可以将 .yarnrc
提交到源代码管理,以便项目中的其他开发人员可以自动使用相同的设置。
您可以创建一个 .yarnrc 文件,内容如下:
--modules-folder resources
这样每个 yarn
命令都会设置此参数。
使用 yarn 运行 时,您需要执行以下操作:
ln -sf /opt/myproject/node_modules
yarn config set -- --modules-folder /opt/myproject/node_modules
yarn 运行 似乎没有使用 .yarnrc
第三,最好将您的源代码放在单独的目录下,作为 Docker 卷或与 node_modules 或供应商分开的 Vagrant 共享文件夹。在 Docker 上,卷挂载在您当前的目录上(因此您不应该挂载 . -> /app,而是 src -> /app/src )。这同样适用于 Oracle virtualbox 的 vagrant,因为“sendfile”-kernel 调用错误导致 JS 和 CSS 文件在共享文件夹中提供 node_modules 时被随机剪切。
第四,由于二进制不兼容的原因,node_modules 应该在虚拟机/映像中烘焙而不是在卷共享文件夹中。 Node.js 实际上是针对 c++ 库编译的,这意味着如果您 运行 npm/yarn 安装并共享 node_modules 从 Mac 到 Docker (运行ning Linux),你会得到分段错误,因为 OSX 二进制文件与 Linux 二进制文件不兼容。如果您使用例如 Linux 到 Linux 也是如此Ubuntu 在主机上,Alpine Linux 在容器上,或不同的 Ubuntu 版本。