为什么 tree-shaking 会移除具有副作用的代码?

发布于 2022-09-13 01:08:46 字数 441 浏览 18 评论 0

index.js 内容如下:

const bar = () => 11111
function foo(obj) {
  const a = 22222  
  return bar(obj);
}
foo()

webpack.config.js 只设置了 mode:'production',package.json 没有设置 sideEffects: false

按理说,上面这段代码执行的结果没有被用到,应该属于 dead-code,会被 tree-shaking 掉,但是 foo 不是纯函数,具有副作用,所以又不会被 tree-shaking 掉。但是在我查看 bundle 文件的时候,发现确实找不到 foo 函数了(检索 11111 和 22222 没有结果),这是为什么呢?

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

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

发布评论

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

评论(1

假装爱人 2022-09-20 01:08:46
// test.js
import React from 'react';
console.log(React);
export const fn = () => {};

// index.js
import {fn} from 'test.js'
fn()

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