Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 如何更改默认包目录?_Laravel_Config_Yarnpkg - Fatal编程技术网

Laravel 如何更改默认包目录?

Laravel 如何更改默认包目录?,laravel,config,yarnpkg,Laravel,Config,Yarnpkg,当使用Thread安装依赖项时,默认情况下会将它们放在节点模块目录中 如何将其更改为即Laravelresources文件夹? 如.bowerrc用于bower设置“目录”:“资源/资产”根据,您可以在package.json文件中指定目录 { "directories": { "lib": "path/to/lib/", "bin": "path/to/bin/", "man": "path/to/man/", "doc": "path/to/doc/",

当使用Thread安装依赖项时,默认情况下会将它们放在
节点模块
目录中

如何将其更改为即Laravel
resources
文件夹?
.bowerrc
用于bower设置
“目录”:“资源/资产”

根据,您可以在
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,因为这个特性不是很稳定

更新2:从下面的答案中,您可以将
--install.modules-folder“/resources”
添加到,这样您就不需要在每次后续调用中不断传递命令行参数。请注意,双引号是必需的;如果没有这些,您将得到
无效值类型1:25
或类似错误


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

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

--modules-folder resources

这样,每个
纱线
命令都将设置此参数。

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

   ln -sf /opt/myproject/node_modules
   yarn config set -- --modules-folder /opt/myproject/node_modules
看起来纱线跑没用了。yarnrc

第三,最好将源代码放在一个单独的目录下,作为Docker卷或Vagrant共享文件夹与node_模块或供应商分开装载。在Docker上,卷装载在当前目录上(因此您不应该装载。->/app,而应该是src->/app/src)。同样的情况也适用于vagrant with OracleVirtualBox,因为“sendfile”(内核调用错误)会导致JS和CSS文件在从共享文件夹提供节点_模块时被随机剪切


第四,由于二进制不兼容的原因,节点_模块应该在虚拟机/映像中烘焙,而不是在卷共享文件夹中烘焙。Jo.NS实际上是针对C++库编译的,这意味着如果运行NPM/Grand安装并将NoDEN1模块从MAC共享到Docker(运行Linux),则由于OSX二进制文件与Linux二进制文件不兼容,将导致分割错误。如果您在主机上使用Ubuntu,在容器上使用Alpine Linux,或者使用不同的Ubuntu版本,Linux到Linux也是如此。

请参阅此链接以获取参考-对于我来说,这个问题尚未得到回答。您需要为服务器端安装软件包(例如
express
),也需要从浏览器端安装其他软件包,例如
jquery
bootstrap
font-awome
。我将NPM用于服务器,将bower用于jquery、bootstrap等。。。现在,仅使用Thread,我仍然不知道如何更改特定库的目标,而我希望将其放在我的
资产/供应商
文件夹中,或者刚刚尝试过的
节点模块
,但所有依赖项仍然安装在节点模块中。这对你有用吗?如果软件包支持,这些文件可能在软件包中进行排序,但不起作用。这是一个可怕的解决方案。像这样的东西需要是全局选项,而不是一次性的命令行开关。我对这些node.js解决方案中有这么多似乎是在非网络化、筒仓化的环境中设计的感到困惑。许多联网系统将用户目录放在网络共享上。但全局安装是在系统级别,而不是用户级别。需要有一个不需要用户覆盖命令行上的modules文件夹的“swearn global install which app”。看起来我将提交另一个被拒绝的github pull请求。hahaFor记录:您可以使用
.yarnrc
文件来设置此选项,使用
-install.modules-folder resources
()这将起作用,但会破坏网页包/任何js文件中的
require('some_package')
。所以解决方案不是100%我也遇到过同样的问题,使用.yarnrc定义install modules文件夹意味着~all~纱线文件都安装在该文件夹中。如果使用Thread作为Bower的替代品,安装需要安装在公共可访问目录中的js库,如bootstrap、jquery等,那么即使是Thread文件也包括在内(并且可以通过web访问),我也不确定这是否是最好的。我正在寻找一种在节点_模块(文档根目录之外)和库/依赖项(jquery等)中安装特定于纱线的文件的方法,这些文件位于/app/public/assets/vendor中。我只是想补充一点,即使这被否决了,它也是正确的。此外,您还可以添加作用域:
--install.module folder
将仅为
install
命令设置此值,而
--*.modules folder
应适用于每个命令(因此其行为应与第一个命令相同)