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"] 这样的配置指定副作用文件。