首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Uglify SyntaxError:意外的标记: punc ()

Uglify SyntaxError:意外的标记: punc ()
EN

Stack Overflow用户
提问于 2017-02-22 02:44:26
回答 6查看 79.1K关注 0票数 69

我正在尝试使用gulp来缩小包含JS文件的文件夹。但是,其中一个文件具有上述错误,从而使其无法缩小。

我设法捕获并打印了错误,我在这里打印了部分错误:

代码语言:javascript
复制
JS_Parse_Error {
 message: 'SyntaxError: Unexpected token: punc ())',
 filename: 'ex.js',
 line: 189,
 col: 25,
 pos: 6482,
 stack: Error\n    at new JS_Parse_Error (eval at <anonymous> ... ) 
 plugin: 'gulp-uglify',
 fileName: '.../js/ex.js',
 showStack: false
}

有问题的文件包含以下缩写:

代码语言:javascript
复制
function() {
  ...
  $.confirm({
    buttons: {
        confirm: function() {
            $.post('/ajax-handler', {
                    ...
                })
                .done( function(response) {
                    var data = filterResponse(response);
                    if (data['status'] == 'success') {
                        sleep(1000).then(() => {
                    *       ...
                        });
                        sleep(5000).then(() => {
                            ...  
                        });

                    } else {
                        console.log('Oops!');
                    }
                })
                .fail( function(err, status, response) {
                    ...
            });
        },
        cancel: function() {}
    }
 });
  ...
}

我添加了上面的"*“,以指示JS_Parse_Error列出的确切位置。

EN

回答 6

Stack Overflow用户

发布于 2017-09-19 15:14:04

仅有npm install uglifyjs-webpack-plugin --save-dev是不够的

主要问题是webpack's package.json中的"uglifyjs-webpack-plugin": "^0.4.6"

semver称,^0.4.6 := >=0.4.6 <0.5.0。由于前导零,webpack将永远不会使用1.0.0-beta.2

所以在运行npm i -D uglifyjs-webpack-plugin@beta之后,你需要再做一步,那就是rm -rf node_modules/webpack/node_modules/uglifyjs-webpack-plugin。然后,webpack将从node_modules/uglifyjs-webpack-plugin而不是node_modules/webpack/node_modules/uglifyjs-webpack-plugin获取版本

2018-04-18更新: webpack v4没有这个问题

票数 17
EN

Stack Overflow用户

发布于 2017-09-12 13:53:26

添加babel-preset-es2015依赖项以修复此问题。

并在.babelrc文件中添加'es2015'

代码语言:javascript
复制
json
{
    "presets": ["es2015"]
}
票数 8
EN

Stack Overflow用户

发布于 2018-04-20 02:22:09

我也有同样的问题,我找到了一个很棒的答案here,它帮助我找到了导致错误的文件。

转到Rails控制台并粘贴:

代码语言:javascript
复制
JS_PATH = "app/assets/javascripts/**/*.js";
Dir[JS_PATH].each do |file_name|
  puts "\n#{file_name}"
  puts Uglifier.compile(File.read(file_name))
end

希望它能帮助一些人!

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

https://stackoverflow.com/questions/42375468

复制
相关文章

相似问题

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