来自UglifyJs的build.js中的错误意外的令牌:punc(()

时间:2018-05-04 23:18:32

标签: javascript node.js webpack vue.js babeljs

我在我当地开发了一个应用程序。客户端和服务器在不同的端口上运行。该应用程序在我的本地系统上正常运行。我现在已将代码推送到服务器上。当我尝试使用npm run build运行代码时。

我收到一个看起来像这样的错误

enter image description here

我的urlMixin.js看起来像这样



let path = require('path');

let webpack = require('webpack');

module.exports = {
    entry: './src/main.js',
output: {
    path: path.resolve(__dirname, './dist'),
    publicPath: '/dist/',
    filename: 'build.js'
},
module: {
    rules: [{
            test: /\.vue$/,
            loader: 'vue-loader',
            options: {
                loaders: {}
                // other vue-loader options go here
            }
        },
        {
            test: /\.js$/,
            loader: 'babel-loader',
            exclude: /node_modules/
        },
        {
            test: /\.(png|jpg|gif|svg)$/,
            loader: 'file-loader',
            options: {
                name: '[name].[ext]?[hash]'
            }
        }
    ]
},
resolve: {
    alias: {
        'vue$': 'vue/dist/vue.esm.js',
    },
    extensions: ['*', '.js', '.vue', '.json']
},

devServer: {
    proxy: {
        '/api': {
            target: 'http://localhost:3000'
        }
    },
    historyApiFallback: true,
    noInfo: true
},
performance: {
    hints: false
},
devtool: '#eval-source-map'
}

if (process.env.NODE_ENV === 'production') {
     module.exports.devtool = '#source-map'
    // http://vue-loader.vuejs.org/en/workflow/production.html
module.exports.plugins = (module.exports.plugins || []).concat([
    new webpack.DefinePlugin({
        'process.env': {
            NODE_ENV: '"production"'
        }
    }),
    new webpack.optimize.UglifyJsPlugin({
        sourceMap: true,
        compress: {
            warnings: false
        }
    }),
    new webpack.LoaderOptionsPlugin({
        minimize: true
    })
])
}




我的网络包有问题吗?我做错了什么?有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

起的变化
  new webpack.optimize.UglifyJsPlugin()

const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
[...]

  new UglifyJSPlugin()

使用npm install-保存uglifyjs-webpack-plugin 解决它。 https://github.com/webpack/webpack/issues/5858#issuecomment-338430720

答案 1 :(得分:0)

我认为您需要在presets的js规则部分中添加webpack.config选项。以下是js规则的示例代码段:

{
  test: /\.m?js$/,
  use: {
    loader: 'babel-loader',
    options: {
      presets: ['@babel/preset-env']
    }
  },
  exclude: [/node_modules/]                                                           
}

UglifyJs插件中的此错误通常在文件为es6或更高版本时发生。我认为UglifyJs插件不适用于比es5更高的js版本,我们需要预设来添加必需的插件才能将其转换为较早的版本。