【问题标题】:ERROR in build.js from UglifyJs Unexpected token: punc (()来自 UglifyJs 意外令牌的 build.js 中的错误:punc (()
【发布时间】:2018-10-15 11:43:53
【问题描述】:

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

我收到一个类似这样的错误

我的 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
    })
])
}

我的 webpack 有问题吗?我在做什么错?有人可以帮帮我吗?

【问题讨论】:

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


【解决方案1】:

变化

  new webpack.optimize.UglifyJsPlugin()

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

  new UglifyJSPlugin()

使用 npm install --save uglifyjs-webpack-plugin 修复它。 https://github.com/webpack/webpack/issues/5858#issuecomment-338430720

【讨论】:

    【解决方案2】:

    我认为您需要在 webpack.config 的 js 规则部分添加 presets 选项。下面是 js 规则的示例 sn-p:

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

    UglifyJs 插件中的此错误主要发生在文件为 es6 或更新版本时。我认为UglifyJs 插件不适用于比 es5 更新的 js 版本,我们需要预设来添加所需的插件以将其转换为旧版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-27
      • 2018-05-14
      • 1970-01-01
      • 2018-03-03
      • 2017-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多