webpack uglify错误:意外的令牌:关键字(功能)

时间:2017-08-27 05:34:54

标签: javascript babeljs webpack-2 uglifyjs angular1.6

我正在尝试运行 npm run build ,但我不能这样做。
我正在使用webpack 2,但它在uglifyJs中给了我一个ERROR     来自UglifyJs的app.3e1e32973e47000acf37.js     意外的令牌:关键字(功能)[app.3e1e32973e47000acf37.js:130155,20] 来自UglifyJs的app.bundle.js中的错误

这是我的package.json

"devDependencies": {
    "angular-animate": "^1.6.4",
    "angular-aria": "^1.6.4",
    "angular-sanitize": "^1.6.4",     
    "babel-core": "^6.2.1",
    "babel-loader": "^6.2.0",
    "babel-preset-es2015": "^6.1.18",
    "copy-webpack-plugin": "4.0.1",    
    "html-webpack-plugin": "^2.7.1",    
    "postcss-loader": "1.2.2",
    "raw-loader": "^0.5.1",
    "rimraf": "^2.5.1",
    "style-loader": "^0.13.0",
    "webpack": "2.2.0",
    "webpack-dev-server": "2.2.0"
  }

"scripts": {
    "build": "rimraf dist && webpack -p --bail --progress --profile",
    "server": "webpack-dev-server --port 8080 --history-api-fallback --inline --progress",
    "start": "npm run server"
  },

这是我的webpack.config.js文件

config.module = {
    rules: [{
      // JS LOADER
      // Reference: https://github.com/babel/babel-loader
      // Transpile .js files using babel-loader
      // Compiles ES6 and ES7 into ES5 code
      test: /\.js$/,
      loader: 'babel-loader',**strong text**
      exclude: /node_modules/
    }

这是我的babel文件

{
  "presets": ["es2015"]
}

当我使用 js 中的测试对象更改webpack.config.js文件到 es6

config.module = {
rules: [{
  // JS LOADER
  // Reference: https://github.com/babel/babel-loader
  // Transpile .js files using babel-loader
  // Compiles ES6 and ES7 into ES5 code
  test: /\.es6$/,
  loader: 'babel-loader',**strong text**
  exclude: /node_modules/
}

我从UglifyJs的app.8c6dc5e29db45e3eb325.js中得到错误错误 意外的令牌:运营商(>)[app.8c6dc5e29db45e3eb325.js:5564,32]

请让我知道我在运行 npm run build 时遇到了什么问题?

1 个答案:

答案 0 :(得分:3)

您需要以这种方式更改您的babel配置

"devDependencies": {    
    "babel-core": "^6.26.0",
    "babel-loader": "^6.4.1",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-polyfill": "^6.26.0",
    "babel-preset-env": "^1.6.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-latest": "^6.22.0",
    "babel-preset-stage-0": "^6.24.1"    
  }

更新你的babelrc

{
  "presets": [
    "es2015",
    "stage-0"
  ],
  "plugins": [
    ["transform-runtime", {
      "helpers": false,
      "polyfill": false,
      "regenerator": true,
      "moduleName": "babel-runtime"
    }]
  ]
}

并将此配置用于webpack

  config.module = {
    rules: [{
      // JS LOADER
      // Reference: https://github.com/babel/babel-loader
      // Transpile .js files using babel-loader
      // Compiles ES6 and ES7 into ES5 code
      test: /\.js$/,
      exclude: /node_modules/,
      use: {
        loader: 'babel-loader',
        options: {
          presets: ['env']
        }
      }
    },

这应该可以解决问题。