package.json
中的 sideEffects
属性主要用于优化 JavaScript 打包工具(如 Webpack)的 tree shaking 过程。tree shaking
是一种优化技术,它会移除未使用的代码,以减小打包后的文件体积。
sideEffects
属性的作用
示例
{
"name": "my-package",
"version": "1.0.0",
"sideEffects": false
}
- 在上面的例子中,
sideEffects: false
表示 my-package
中的所有模块都没有副作用,因此未被使用的模块将会被移除。
使用场景
- 无副作用的库:例如纯函数库(如 lodash),它们没有副作用,适合使用
sideEffects: false
。
- 有副作用的模块:例如导入 CSS、Polyfill、或一些修改全局对象的代码,可以通过
"sideEffects": ["*.css"]
这样的配置指定副作用文件。