鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ 使用了 let 變量之后 webpack.optimize.UglifyJsP

使用了 let 變量之后 webpack.optimize.UglifyJsPlugin 就壓縮不了代碼了嗎?

webpack.config.js

var webpack = require('webpack');
var path = require('path');

module.exports = {
    entry: './test.js',
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'my-first-webpack.bundle.js',
        library: "MyLibrary",
        libraryTarget: 'umd',
        umdNamedDefine: true
    },
    module: {
        rules: [{
            test: /\.js$/,
            loader: 'babel-loader'
        }]
    },
    plugins: [
        new webpack.optimize.UglifyJsPlugin({
            beautify: false,
            comments: false,
            compress: {
                warnings: false,
                drop_console: true,
                collapse_vars: true,
                reduce_vars: true,
            }
        })
    ]
}

test.js

let aLooooongName = 'test webpack';
console.log(123123123123123123)
// zhushihasdifhaisdhfih
if (true) {
    aLooooongName = 'true value'
} else {
    aLooooongName = 'false value'
}

export default aLooooongName;

結(jié)果經(jīng)過webpack打包出來的文件并沒有壓縮,但是將test.js改成以下樣子之后就可以壓縮了,是什么情況?

var aLooooongName = 'test webpack';
console.log(123123123123123123)
// zhushihasdifhaisdhfih
if (true) {
    aLooooongName = 'true value'
} else {
    aLooooongName = 'false value'
}

export default aLooooongName;

也就將一個let變成了var了,就能壓縮了什么情況???
求助!?。?!

回答
編輯回答
背叛者

uglify不支持壓縮ES6語法

2017年1月22日 06:43
編輯回答
凝雅

忘了寫 .babelrc 了,寫了 .babelrc 這個后就正常了。
不過看來webpack.optimize.UglifyJsPlugin是只能壓縮es5的代碼

2017年12月20日 14:57
編輯回答
傲寒

有個支持 ES6 壓縮的 plugin 可以試試 https://www.npmjs.com/package...

2017年4月2日 00:04