Laravel Elixer 无法缩小和版本控制 JavaScript 文件



我正在使用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 文件。

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

任何帮助将不胜感激。

刚刚在一个

旧的 Laravel 5.1 项目上遇到了这个问题。

大多数情况下,这似乎是由您添加的一些新的 ECMAScript 6+ 代码引起的,而 uglyfijs 无法解析这些代码。要解决此问题,您需要使用 buble 或 babel 在运行 gulp 时自动转换代码,或者将有问题的代码更改为"常规"js。

请参阅此问题:https://github.com/JeffreyWay/laravel-elixir-webpack-official/issues/34

使用 babel 在运行 gulp 时自动转换你的代码:
来源: 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对每个脚本执行此操作,直到它抱怨为止。如果它抛出错误,它会将您指向行号。

最新更新