说明: Gulp在我的本地机器上观察我的css / js文件直到开发模式。
然后在生产阶段,我将所有laravel项目上传到生产(实时)服务器上。
问题: 随着安装的所有gulp和elixir的东西,laravel项目变得非常沉重。
问题:
我需要在生产服务器上加载项目才能使node_modules
目录的哪些文件正常工作以使Elixir正常工作?
我的意思是
包含all.css
和all.js
个文件
<link rel="stylesheet" href="{{ elixir('css/all.css') }}">
也许没有必要加载所有这些?
答案 0 :(得分:1)
您不必担心包含node_modules
目录中的任何文件;您可以将它们视为类似于php项目的vendor
目录的依赖项。
如果您使用默认路径和配置来编译资产,您只需要将文件包含在public/*
目录中,以便拥有工作视图。你可以在Scripts section of the Elixir documentation中看到一个很好的例子。
scripts方法假定所有路径都相对于resources / assets / js目录,并且默认情况下将生成的JavaScript放在public / js / all.js中:
elixir(function(mix) { mix.scripts([ 'jquery.js', 'app.js' ]); });
作为旁注,我个人不建议创建这种分离,因为项目似乎重。如果你有一个非常大的项目规模,它很可能不应该归因于css和js。如果需要,您还可以考虑使用cdn来减轻生产空间。
答案 1 :(得分:1)
我遇到了同样的问题。 我的gulpfile.js有
mix.sass('app.scss');
mix.browserify('app.js');
mix.version(['css/app.css', 'js/app.js']);
这是我的解决方案:
npm shrinkwrap
,然后推送package.json,gulpfile.js,npm-shrinkwrap.json,
资源/资产/(JS | SASS)。在服务器网站root中,执行npm install
和gulp --production
gulp --production
并将public / build / *推送到服务器。如果未使用Elixir版本控制,请改为public /(js | css)。资源/资产(js | css)和所有npm gulp东西都可以从服务器保存。 node_modules
我使用选项2,更容易,对我来说很好。