10

简介: Gulp 在我的本地机器上监视我的 css/js 文件直到开发模式。

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

问题: 安装了所有 gulp 和 elixir 的东西后,laravel 项目变得非常繁重。

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

我的意思是包括all.cssall.js文件

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

也许不需要全部加载?

4

2 回答 2

1

您不必担心包含node_modules目录中的任何文件;您可以将它们视为类似于vendor您的 php 项目目录的依赖项。

public/*如果您使用默认路径和配置来编译资产,则只需将文件包含在目录中即可获得工作视图。您可以在 Elixir 文档的脚本部分看到一个很好的例子。

scripts 方法假定所有路径都相对于 resources/assets/js 目录,默认情况下会将生成的 JavaScript 放在 public/js/all.js 中:

elixir(function(mix) { mix.scripts([ 'jquery.js', 'app.js' ]); });

作为旁注,我个人不建议创建这种分离,因为项目看起来很重。如果你有一个非常大的项目,它很可能不应该是由于 css 和 js。如果需要,您还可以考虑使用 cdn 来减轻生产空间。

于 2015-08-08T13:44:57.520 回答
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、resources/assets/(js|sass)。在服务器网站根目录中,执行npm installgulp --production
  • 选项 2:服务器上不需要 npm 或 gulp。只需gulp --production在本地执行并将 public/build/* 推送到服务器。如果没有使用 Elixir 版本控制,请改为推送 public/(js|css)。resources/assets(js|css) 和所有 npm gulp 的东西都可以从服务器中保存。

node_modules在任何一种情况下都不需要。
我使用了选项 2,更容易并且对我来说工作得很好。

于 2016-04-24T06:41:37.397 回答