webpack -p无法uglify es2015代码

时间:2016-08-10 21:15:52

标签: javascript webpack babeljs

webpack -p cli命令无法uglify es2015代码

的package.json

  "devDependencies": {
    "babel": "^6.5.2",
    "babel-core": "^6.13.2",
    "babel-loader": "^6.2.4",
    "babel-preset-es2015": "^6.13.2"
  }

webpack.config.js

var webpack = require("webpack");

var config = {
    entry: './src/app.js',
    devtool: "source-map",
    output: {
        path: '../Scripts',
        filename: 'bundle.js'
    },
    module: {
        loaders: [
            {
                test: /\.js$/,
                loader: 'babel-loader',
                query: {
                    presets: ['es2015']
                },
                include: ["./src"],
                exclude: /node_modules/
            }
        ]
    }
}

module.exports = config;

运行webpack -p

时出错
ERROR in bundle.js from UglifyJs
Unexpected character '`' [./src/LineEndRenderer.js:33,0]

(使用es2015模板字符串)

正常运行webpack -d

1 个答案:

答案 0 :(得分:1)

github上的用户(fulls1z3)想出了一个不需要babel的solution(见2016年11月26日发布):

这是一份副本:

  

webpack#2用户,我特此尝试提供详细说明,以便将UglifyJs2的Harmony分支与webpack一起使用:

     
      
  • Fork webpack,
  •   
  • 在该分支上,删除除master之外的所有分支
  •   
  • 将主分支克隆到本地文件夹,
  •   
  • 在本地文件夹中,删除所有文件
  •   
  • 提交空本地文件夹
  •   
  • 下载最新版本(例如:v2.1.0-beta.27)
  •   
  • 将zip文件的内容解压缩到本地文件夹
  •   
  • 在本地文件夹中,编辑forked package.json,更改   "uglify-js": "git+https://github.com/mishoo/UglifyJS2.git#harmony"   将UglifyJs2(和谐分支)依赖指向该分支。

  •   
  • 提交更改,

  •   
  • 最后,将package.json中的webpack指向自定义fork:   "webpack": "[USERNAME]/webpack#master"
  •   
     

OR,

     
      
  • 将package.json中的webpack指向fulls1z3/webpack(ES6 / ES2015友好的webpack fork):   "webpack": "fulls1z3/webpack#v2.1.0-beta.27-harmony"
  •   

我在全球范围内使用webpack,所以我也必须运行它:

  

npm install yargs supports-color enhanced-resolve explain tapable webpack-sources source-map uglify-js object-assign async loader-runner acorn watchpack mkdirp ajv ajv-keywords node-libs-browser -g

然后我用https://github.com/fulls1z3/webpack/releases

替换了我的全球webpack npm文件夹webpack-2.1.0-beta.27-harmony.zip

最后,我使用https://github.com/mishoo/UglifyJS2/tree/harmony

中的uglify-js替换了我的全球UglifyJS2-harmony.zip npm文件夹