使用了 let 变量之后 webpack.optimize.UglifyJsPlugin 就压缩不了代码了吗?

发布于 2022-09-06 05:23:33 字数 1390 浏览 24 评论 0

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;

结果经过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了,就能压缩了什么情况???
求助!!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

混吃等死 2022-09-13 05:23:33

uglify不支持压缩ES6语法

明月夜 2022-09-13 05:23:33

忘了写 .babelrc 了,写了 .babelrc 这个后就正常了。
不过看来webpack.optimize.UglifyJsPlugin是只能压缩es5的代码

命硬 2022-09-13 05:23:33

有个支持 ES6 压缩的 plugin 可以试试 https://www.npmjs.com/package...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文