我正在使用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
对每个脚本执行此操作,直到它抱怨为止。如果它抛出错误,它会将您指向行号。