首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel Elixer无法缩小和版本化javascript文件

Laravel Elixer无法缩小和版本化javascript文件
EN

Stack Overflow用户
提问于 2017-06-21 16:05:00
回答 1查看 417关注 0票数 1

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

下面是我的gulpfile.js

代码语言:javascript
复制
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时,一切都运行得很好,我得到了编译后的文件,而且版本文件现在都在build文件夹中。

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

代码语言:javascript
复制
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文件。

我尝试过通过多种方式进行调试,但仍然无法找到问题所在。尝试更新/降级相关的包,但即使这样也没有帮助。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2019-06-01 00:21:40

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

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

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

在运行gulp时使用babel自动转换代码:

来源:https://laravel.com/docs/5.1/elixir#babel

代码语言:javascript
复制
elixir(function(mix) {
    mix.babel([
        'order.js',
        'product.js'
    ]);
});

或修复您的代码,使用以下代码找出哪个脚本是罪魁祸首:

./node_modules/.bin/uglifyjs path/to/resources/assets/js/some_script.js

对每个脚本执行此操作,直到它报错为止。如果它抛出一个错误,它会将你指向行号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44670240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档