【问题标题】:Laravel Elixer not able to minify and version javascript filesLaravel Elixer 无法缩小和版本化 javascript 文件
【发布时间】:2017-11-24 00:17:12
【问题描述】:

我正在使用 laravel 5.1 elixer 来管理、版本、缩小我的应用程序 css 和 js

下面是我的 gulpfile.js

elixir(function (mix) {
    mix.less([
        'app.less',
        'creative.less',
        'mixins.less',
        'variables.less'
    ]).less([
        'dashboard.less',
        'component.less',
        'app-variables.less'
    ], 'public/css/dashboard.css')

    mix.scriptsIn('public/js/angular/controller', 'public/js/angular/appControllers.min.js');
    mix.scriptsIn('public/js/angular/service', 'public/js/angular/appServices.min.js');
    mix.scriptsIn('public/js/angular/directive', 'public/js/angular/appDerictives.min.js');

    mix.version([
        'public/css/dashboard.css',
        'public/css/app.css',
        'public/js/angular/appControllers.min.js',
        'public/js/angular/appServices.min.js',
        'public/js/angular/appDerictives.min.js'
    ]);
});

当我运行命令gulp 时一切正常,我得到了编译文件,并且版本文件现在在构建文件夹中。

问题从我使用gulp --production开始,当laravel启动时,使用脚本启动时进程中断,以下是错误 -

events.js:141
 throw er; // Unhandled 'error' event
 ^
Error at new JS_Parse_Error (eval at <anonymous (/Users/apple/code/hireajackal/node_modules/gulp-uglify/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:1534:18)
at js_error (eval at <anonymous> (/Users/apple/code/hireajackal/node_modules/gulp-uglify/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:1542:11)
at croak (eval at <anonymous> (/Users/apple/code/hireajackal/node_modules/gulp-uglify/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2089:9)
at token_error (eval at <anonymous> (/Users/apple/code/hireajackal/node_modules/gulp-uglify/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2097:9)
at unexpected (eval at <anonymous> (/Users/apple/code/hireajackal/node_modules/gulp-uglify/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2103:9)
at expr_atom (eval at <anonymous> (/Users/apple/code/hireajackal/node_modules/gulp-uglify/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2630:9)
at maybe_unary (eval at <anonymous> (/Users/apple/code/hireajackal/node_modules/gulp-uglify/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2792:19)
at expr_ops (eval at <anonymous> (/Users/apple/code/hireajackal/node_modules/gulp-uglify/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2827:24)
at maybe_conditional (eval at <anonymous> (/Users/apple/code/hireajackal/node_modules/gulp-uglify/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2832:20)
at maybe_assign (eval at <anonymous> (/Users/apple/code/hireajackal/node_modules/gulp-uglify/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2856:20)

问题肯定出在 gulp 文件的 scriptsIn 部分,或者我可以说 gulp 无法缩小 js 文件。

我已经尝试通过多种方式进行调试,但仍然无法找到问题所在。尝试更新/降级相关软件包,但即使这样也无济于事。

任何帮助将不胜感激。

【问题讨论】:

    标签: gulp laravel-5.1 minify laravel-elixir


    【解决方案1】:

    刚刚在一个旧的 Laravel 5.1 项目中遇到了这个问题。

    这似乎主要是由您添加的一些新的 ECMAScript 6+ 代码导致的,这些代码无法解析。要解决这个问题,您需要在运行 gulp 时使用 buble 或 babel 自动转换代码,或者将有问题的代码更改为“常规”js。

    看到这个问题:https://github.com/JeffreyWay/laravel-elixir-webpack-official/issues/34

    在运行 gulp 时使用 babel 自动转换代码:
    来源:https://laravel.com/docs/5.1/elixir#babel

    elixir(function(mix) {
        mix.babel([
            'order.js',
            'product.js'
        ]);
    });
    

    或修复您的代码,使用以下内容找出罪魁祸首:
    ./node_modules/.bin/uglifyjs path/to/resources/assets/js/some_script.js
    对每个脚本都这样做,直到它抱怨为止。如果它抛出一个错误,它将指向你的行号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      • 1970-01-01
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      相关资源
      最近更新 更多