代码之家  ›  专栏  ›  技术社区  ›  Polygon Pusher

webpack4,Babel传输到ES5和uglifyjs Webpack插件的困境

  •  0
  • Polygon Pusher  · 技术社区  · 6 年前

    我在尝试运行我的网页包生成时出错。

    node_modules/webpack/bin/webpack.js -p --config webpack.config.production.js
    
    ...
    
    ERROR in app.js from UglifyJs
    Unexpected token: keyword (const) [app.js:18757,0]
    
    ...
    

    通过查看这个错误,我了解到这可能会导致ES6代码进入系统 uglifyjs-webpack-plugin

    但是如果我有babel设置将代码传输到es5中,为什么会这样呢?

    巴别塔

    {
      "presets": [
        [
          "@babel/preset-env",
          {
            "targets": {
              "node": "6.10",
              "esmodules": true
            }
          }
        ]
      ],
      "plugins": ["@babel/plugin-proposal-object-rest-spread"]
    }
    

    网页包公共配置

    module.exports = (env, options) => ({
      ...
      module: {
        rules: [
          {
            test: /\.js$/,
            use: {
              loader: "babel-loader",
              options: {
                presets: ["@babel/preset-env"]
              }
            },
            exclude: /node_modules/
          },
        ...
    

    还有我的产品配置

    ...
    const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
    
    ...
    const webpackCommonConfig = require("./webpack.config.common")();
    
    module.exports = merge(webpackCommonConfig, {
      mode: "production",
      optimization: {
        minimizer: [
          new UglifyJsPlugin({ cache: false, parallel: false, sourceMap: false }),
        ...
        ]
      }
    });
    

    我的假设是,在优化运行之前,babel会将js传输到es5中。我错过了什么?

    https://babeljs.io/docs/en/babel-preset-env#forcealltransforms

    虽然

    0 回复  |  直到 6 年前