【问题标题】:What files of Laravel Elixir are necessary on production server?生产服务器上需要哪些 Laravel Elixir 文件?
【发布时间】:2015-08-01 05:16:08
【问题描述】:

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

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

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

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

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

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

也许不需要全部加载?

【问题讨论】:

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


    【解决方案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 来减轻生产空间。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。 我的 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)。在服务器网站根目录中,执行 npm installgulp --production
      • 选项 2:服务器上不需要 npm 或 gulp。只需在本地执行 gulp --production 并将 public/build/* 推送到服务器。如果没有使用 Elixir 版本控制,请改为推送 public/(js|css)。资源/资产(js|css)和所有 npm gulp 的东西都可以保存在服务器上。

      node_modules 在这两种情况下都不需要。
      我使用了选项 2,更简单,对我来说效果很好。

      【讨论】:

        猜你喜欢
        • 2020-11-06
        • 2011-11-04
        • 2011-05-05
        • 2019-12-10
        • 1970-01-01
        • 2015-02-26
        • 2020-03-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多