javascript - 是否可以使用 Webpack 删除不活动的代码?

标签 javascript node.js webpack

我正在导入lodash进入我的项目,但主脚本不使用超过 5 个 lodash 函数,我不想用未使用/非事件代码填充我的项目,有没有办法检查整个项目结构并删除 bundle 上的非事件代码/构建时?

示例:

index.html

<body>
  <script src="lodash.js"></script>
  <script src="app.js"></script>
</body>

lodash.js

function a() {
  console.log('Hi')
}

function b() {
  console.log('I am not used anywhere')
}

app.js

...
document.getElementById('main').addEventListener('click', a)
...

项目中未使用函数b()。

问题:

如何自动删除不活动的代码function b()

最佳答案

你想要的叫Tree Shaking ,一种决定哪些代码是死代码并且不应包含在 bundle 中的模式。与 Webpack 一起使用的要求之一是使用 ES Modules 。如果您已经使用 webpack 来捆绑 app.js,则应该 import 将 lodash 导入您的项目中,而不是将其添加为 html 文件中的依赖项。

请记住,这仅在 lodash 使用 ES 模块时才有效,如果不是这种情况,则始终有 lodash-es

关于javascript - 是否可以使用 Webpack 删除不活动的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59695277/

相关文章:

javascript - jQuery 嵌套each/Ajax 问题

javascript - 没有jquery的自定义滚动条

javascript - 数据未使用 Handlebars 和expressnjs渲染

javascript - 如何在不改变状态的情况下操作传递给函数的对象的属性

angular - 从 Angular 5.2 升级到 6.1

javascript - 常见问题页面。显示和隐藏内容,JQuery 和 CSS 问题

javascript - 如何更改 jQuery 中动态创建的段落的背景颜色?

javascript - Node.js Javascript 随机彩色打印

javascript - 如何在 Webpack 中使用缓存清除?

webpack - 在不调用 version() 的情况下将图像添加到 laravel mix manifest