使用laravel elixir运行gulp任务并不会对所有js文件进行版本控制

时间:2015-04-24 09:49:15

标签: laravel gulp laravel-5 laravel-elixir

我有这个gulpfile.js https://gist.github.com/kristapsveveris/c25ba60984d8f3602d68

当我执行gulp任务时,结果是:

http://maxtraffic.com/assets/img/public-assets.png

rev-manifest.json包含:

{
  "assets/js/all.js": "assets/js/all-d764f790.js",
  "assets/css/all.css": "assets/css/all-189848ae.css",
  "assets/css/serve-desktop.css": "assets/css/serve-desktop-037f21da.css",
  "assets/css/serve-mobile.css": "assets/css/serve-mobile-b0a650b6.css"
}

所以问题是版本控制没有创建' campaign.js'和' serve.js'只有他们的.map文件

如果我跑:

 gulp --production && gulp version --production

创建所有版本控制文件

我正在从Windows运行gulp任务

1 个答案:

答案 0 :(得分:2)

您使用的是什么版本的laravel-elixir?这是一个bug with elixir < v0.14.2

看起来在连接大量文件时(或者更可能是输出文件很大),然后它没有得到其余文件的版本。

看起来你可以单独运行gulp version,它们会被版本化。如果您遇到此问题,则gulpgulp watch将无法执行此操作。

这是我的gulp文件, vendor.js 正在编译但没有版本化。它甚至不是最后一个版本的文件:

var elixir = require('laravel-elixir');

elixir(function(mix) {

    mix.sass('app.scss')

    .scripts([
        'react/react-with-addons.min.js',
        'jquery/dist/jquery.min.js',
        'bootstrap-sass-official/assets/javascripts/bootstrap.js'
    ], 'public/js/vendor.js', 'resources/assets/bower')

    .scripts(['app.js'], 'public/js/app.js', 'resources/assets/js')

    .version([
        'css/app.css',
        'js/vendor.js',
        'js/app.js'
    ]);

});

之后运行gulp version将对其进行版本化。

laravel-elixir v0.14.2

为我修好了