UglifyJs reported an error when iview admin project npm run build was packaged

problem description

UglifyJs error (ERROR in 1.2db93f96dd466683d093.chunk.js from UglifyJs Unexpected token: operator (when iview admin project npm run build is packaged (ERROR in 1.2db93f96dd466683d093.chunk.js from UglifyJs Unexpected token: operator (>) [1.2db93f96dd466683d093.chunk.jspur46439Magi 43])

the environmental background of the problems and what methods you have tried

in the packaged file 1.2db93f96dd466683d093.chunk.js > should identify the error, analysis may be because UglifyJs parsing es6 syntax escape problems, on the Internet to find some configuration changes or invalid methods, please help to see what can be solved.

related codes

the packaged file reported an error line

Object.keys(Methods).forEach((methodName) => {
  __WEBPACK_IMPORTED_MODULE_0_dom7_dist_dom7_modular__["a" /* $ */].fn[methodName] = Methods[methodName];
});


error details

ERROR in 1.2db93f96dd466683d093.chunk.js from UglifyJs
Unexpected token: operator (>) [1.2db93f96dd466683d093.chunk.js:46439,43]
Child html-webpack-plugin for "..\index.html":
     1 asset
Child extract-text-webpack-plugin node_modules/extract-text-webpack-plugin/dist node_modules/css-loader/index.js?minimize!node_modules/autoprefixer-loader/index.js!node_modules/element-ui/lib/theme-chalk/index.css:
                                    Asset     Size  Chunks             Chunk Names
    2fad952a20fbbcfd1bf2ebb210dccf7a.woff  6.16 kB          [emitted]
     6f0a76321d30f3c8120915e57f7bd77e.ttf    11 kB          [emitted]
Child extract-text-webpack-plugin node_modules/extract-text-webpack-plugin/dist node_modules/css-loader/index.js?minimize!node_modules/autoprefixer-loader/index.js!node_modules/iview/dist/styles/iview.css:
                                    Asset     Size  Chunks                    Chunk Names
     2c2ae068be3b089e0a5b59abb1831550.eot   121 kB          [emitted]
     24712f6c47821394fba7942fbb52c3b2.ttf   189 kB          [emitted]
    05acfdb568b3df49ad31355b19495d4a.woff  67.9 kB          [emitted]
     621bd386841f74e0053cb8e67f8a0604.svg   334 kB          [emitted]  [big]
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! iview-admin@1.3.1 build: `webpack --progress --hide-modules --config build/webpack.prod.config.js`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the iview-admin@1.3.1 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\S\AppData\Roaming\npm-cache\_logs\2018-07-13T02_51_42_530Z-debug.log

webpack.base.config file code

const path = require("path");
const os = require("os");
const webpack = require("webpack");
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const HappyPack = require("happypack");
var happyThreadPool = HappyPack.ThreadPool({ size: os.cpus().length });
function resolve (dir) {
    return path.join(__dirname, dir);
}
module.exports = {
    entry: {
        main: "@/main",
        "vender-base": "@/vendors/vendors.base.js",
        "vender-exten": "@/vendors/vendors.exten.js"
    },
    output: {
        path: path.resolve(__dirname, "../dist/dist")
    },
    module: {
        rules: [
            {
                test: /\.vue$/,
                loader: "vue-loader",
                options: {
                    loaders: {
                        css: "vue-style-loader!css-loader",
                        less: "vue-style-loader!css-loader!less-loader"
                    },
                    postLoaders: {
                        html: "babel-loader"
                    }
                }
            },
            {
                test: /iview\/.*?js$/,
                loader: "happypack/loader?id=happybabel",
                exclude: /node_modules/
            },
            {
                test: /\.js$/,
                loader: "happypack/loader?id=happybabel",
                exclude: /node_modules/
            },
            {
                test: /\.js[x]?$/,
                include: [resolve("src")],
                exclude: /node_modules/,
                loader: "happypack/loader?id=happybabel"
            },
            {
                test: /\.css$/,
                use: ExtractTextPlugin.extract({
                    use: ["css-loader?minimize", "autoprefixer-loader"],
                    fallback: "style-loader"
                })
            },
            {
                test: /\.less$/,
                use: ExtractTextPlugin.extract({
                    use: ["css-loader?minimize","autoprefixer-loader", "less-loader"],
                    fallback: "style-loader"
                }),
            },
            {
                test: /\.(gif|jpg|png|woff|svg|eot|ttf)\??.*$/,
                loader: "url-loader?limit=1024"
            },
            {
                test: /\.(html|tpl)$/,
                loader: "html-loader"
            }
        ]
    },
    plugins: [
        new HappyPack({
            id: "happybabel",
            loaders: ["babel-loader"],
            threadPool: happyThreadPool,
            verbose: true
        }),
        new webpack.ProvidePlugin({
            jQuery: "jquery",
            $: "jquery"
        })
    ],
    resolve: {
        extensions: [".js", ".vue"],
        alias: {
            "vue": "vue/dist/vue.esm.js",
            "@": resolve("../src"),
        }
    }
};

webpack.prod.config file code

const webpack = require("webpack");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const CopyWebpackPlugin = require("copy-webpack-plugin");
const cleanWebpackPlugin = require("clean-webpack-plugin");
const UglifyJsParallelPlugin = require("webpack-uglify-parallel");
const merge = require("webpack-merge");
const webpackBaseConfig = require("./webpack.base.config.js");
const os = require("os");
const fs = require("fs");
const path = require("path");
const package = require("../package.json");


fs.open("./build/env.js", "w", function(err, fd) {
    const buf = "export default "production";";
    fs.write(fd, buf, 0, buf.length, 0, function(err, written, buffer) {});
});

module.exports = merge(webpackBaseConfig, {
    output: {
        publicPath: "https://screen.lotusdata.com/dist/",  //  https://iv...admin  
        filename: "[name].[hash].js",
        chunkFilename: "[name].[hash].chunk.js"
    },
    plugins: [
        new cleanWebpackPlugin(["dist/*"], {
            root: path.resolve(__dirname, "../")
        }),
        new ExtractTextPlugin({
            filename: "[name].[hash].css",
            allChunks: true
        }),
        new webpack.optimize.CommonsChunkPlugin({
            // name: "vendors",
            // filename: "vendors.[hash].js"
            name: ["vender-exten", "vender-base"],
            minChunks: Infinity
        }),
        new webpack.DefinePlugin({
            "process.env": {
                NODE_ENV: ""production""
            }
        }),
       
        new webpack.optimize.UglifyJsPlugin({
            compress: {
                warnings: false
            }
        }),
        
        // new UglifyJsParallelPlugin({
        //     workers: os.cpus().length,
        //     mangle: true,
        //     compressor: {
        //       warnings: false,
        //       drop_console: true,
        //       drop_debugger: true
        //      }
        // }),
        new CopyWebpackPlugin([
            {
                from: "td_icon.ico"
            },
            {
                from: "src/styles/fonts",
                to: "fonts"
            },
            {
                from: "src/views/main-components/theme-switch/theme"
            },
            {
                from: "src/views/my-components/text-editor/tinymce"
            }
        ], {
            ignore: [
                "text-editor.vue"
            ]
        }),
        new HtmlWebpackPlugin({
            title: " v" + package.version,
            favicon: "./td_icon.ico",
            filename: "../index.html",
            template: "!!ejs-loader!./src/template/index.ejs",
            inject: false
        })
    ]
});

.babelrc file code

{
    "presets": ["stage-3", "env"],
    "plugins": ["transform-runtime", "syntax-dynamic-import"],
    "comments": false
}


what result do you expect? What is the error message actually seen?

Oct.09,2021

stepped on this hole all day, and finally popped out. According to the directory where your webpack.base.config.js is located, the corresponding include needs the path of babel when packing, and the path must be correct, and include and exclude cannot be shared, or cannot be used in the same directory at the same time.
follow normal logic. Files in node_modules should not contain es6 code to
{

test: /\.js$/,
loader: 'happypack/loader?id=happybabel',
include: [resolve('../build'), resolve('../src'), resolve('../node_modules/iview/src'), resolve('../node_modules/iview/dist')]

}


clipboard.png
node_modulesES6build[/]

clipboard.png

node_modules

clipboard.png


has the landlord solved the problem? the same problem has not been solved by the method of the two people upstairs.

Menu