javascript - 是否可以使用 Webpack 删除非活动代码?
问题描述
我正在将lodash导入我的项目,但主脚本不使用超过 5 个 lodash 函数,我不想用未使用/非活动代码填充我的项目,有没有办法检查整个项目结构并删除捆绑/构建时的非活动代码?
例子:
索引.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')
}
应用程序.js
...
document.getElementById('main').addEventListener('click', a)
...
项目中未使用函数 b()。
问题:
如何自动摆脱非活动代码函数 b()?
解决方案
您想要的称为Tree Shaking,这是一种确定哪些代码是死代码且不应包含在包中的模式。将它与 Webpack 一起使用的要求之一是使用ES Modules。如果你已经使用 webpack 来打包app.js
,你应该import
在你的项目中导入 lodash,而不是把它作为依赖添加到你的 html 文件中。
请记住,这只有在 lodash 使用 ES 模块时才有效,如果不是这样,总是有lodash-es
推荐阅读
- amazon-web-services - 带有 Lambda 和 S3 的 AWS ElasticSearch 不会将文档添加到索引中
- javascript - 如何处理 fetch() 响应并仍然异步工作
- node.js - async/await 和 http 客户端请求的问题
- node.js - 在 AppEngine Node.js 标准环境中稳定快速会话
- matlab - matlab代码生成重采样:项数N必须是常数
- angular - 如何在剑道网格中执行服务器端过滤以获取角度
- xamarin.android - 根据条件更改工具栏
- javascript - 负 z-index 在模态中不起作用
- ruby-on-rails - 升级到 macOS Mojave,现在在 Rails 控制台中出现错误
- hyperledger-fabric - 错误:2 未知:访问被拒绝:频道 [composerchannel] creator org