相关疑难解决方法(0)

Webpack 4对包含sideEffects的包的期望是什么:false

Webpack 4增加了一项新功能:它现在支持捆绑的模块中的sideEffects标志package.json.

来自Webpack 4:今天发布

在过去的30天里,我们与每个框架密切合作,以确保他们已准备好在各自的cli等支持webpack 4.即使像lodash-es这样的流行库,RxJS也支持sideEffects标志,所以通过使用他们的最新版本版本,您将看到即时捆绑尺寸减少开箱即用.

来自Webpack文档

"sideEffects":big-module的package.json中的false标志表示包的模块没有副作用(评估时)并且只暴露导出.这允许像webpack这样的工具优化再出口.

虽然第二个链接显示了使用该标志的结果,但它没有清楚地解释什么构成副作用.ES6包含了此处概述的模块副作用的概念,但这与Webpack考虑的副作用有何关系.

sideEffects标志的上下文中,模块需要避免在sideEffects:false没有问题的情况下使用什么,或者对话,模块需要做什么才能sideEffects:false无问题地使用.

为了完整起见,尽管@ SeanLarkin在下面给出了可靠的答案,但我想对以下内容进行澄清:

  1. 显然,副作用意味着fp特有的东西,包括日志记录(控制台或其他地方)和抛出错误.我假设在这种情况下这些是完全可以接受的吗?

  2. 模块是否可以包含循环引用并仍然使用sideEffects: false

  3. 有没有办法验证或模块是否能够验证模块是否可以sideEffects: false超越试图追踪由其误用造成的错误?

  4. 是否还有其他因素会妨碍模块的使用sideEffects: false

javascript side-effects bundler webpack package.json

35
推荐指数
2
解决办法
8765
查看次数