webpack4 tree-shaking无效?

发布于 2022-09-12 01:43:58 字数 1431 浏览 12 评论 0

我按照官方文档来配置了,为啥tree-shaking无效?

//  webpack.config.js
module.exports = {
    mode: 'development',
    entry: './index.js',
    output: {
        filename: "bundle.js"
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                use: [
                    {
                        loader: 'babel-loader',
                    },
                ],
                exclude: /node_modules/
            }
        ]
    }
}
//  index.js
import {cube} from './validator.js';

console.log(cube(5));
//  validator.js
// 这个函数没有被其他地方引用过
export function square(x) {
    return x * x;
}

// 这个函数被引用了
export function cube(x) {
    return x * x * x;
}
//  .babelrc
{
  "presets": [
    ["@babel/preset-env", {
      "modules": false
    }]
  ]
}
//  打包结果bundle.js
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"square\", function() { return square; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cube\", function() { return cube; });\n// 这个函数没有被其他地方引用过\nfunction square(x) {\n  return x * x;\n} // 这个函数被引用了\n\nfunction cube(x) {\n  return x * x * x;\n}\n\n//# sourceURL=webpack:///./validator.js?");

bundle.js里并没有标识 unused harmony export square
请问是为什么???

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

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

发布评论

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

评论(2

陌路黄昏 2022-09-19 01:43:58

还少了步骤吧。
package.json 要配置 sideEffects
mode 要设为 production

愁以何悠 2022-09-19 01:43:58

不要使用mode: development,官方示例bundle.js是测试打包生成的文件,tree-shaking是用于生产环境。

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