生产服务器上需要哪些Laravel Elixir文件?

时间:2015-08-01 05:16:08

标签: php laravel laravel-5 gulp laravel-elixir

说明: Gulp在我的本地机器上观察我的css / js文件直到开发模式。

然后在生产阶段,我将所有laravel项目上传到生产(实时)服务器上。

问题: 随着安装的所有gulp和elixir的东西,laravel项目变得非常沉重。

问题: 我需要在生产服务器上加载项目才能使node_modules目录的哪些文件正常工作以使Elixir正常工作?

我的意思是

包含all.cssall.js个文件

<link rel="stylesheet" href="{{ elixir('css/all.css') }}">

也许没有必要加载所有这些?

2 个答案:

答案 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']);

这是我的解决方案:

  • 选项1:如果你在服务器上有npm和gulp。在本地机器上,做 npm shrinkwrap,然后推送package.json,gulpfile.js,npm-shrinkwrap.json, 资源/资产/(JS | SASS)。在服务器网站root中,执行npm installgulp --production
  • 选项2:服务器上不需要npm或gulp。只需在本地执行gulp --production并将public / build / *推送到服务器。如果未使用Elixir版本控制,请改为public /(js | css)。资源/资产(js | css)和所有npm gulp东西都可以从服务器保存。
在任何一种情况下都不需要

node_modules 我使用选项2,更容易,对我来说很好。