我试图弄清楚 Webpack 中的树摇晃,我注意到在此示例 1 上运行-webpack -optimize-minimize
是 11kB,而在示例 2 上运行是 7kB。
库Rambda
在其package.json
中有一个字段模块。据我所知,Webpack 不尊重它,我需要明确引用esm
文件位置。
问题是错误还是功能?
例1
import {add} from 'rambda'
function fn(x) {
return add(2)(x)
}
console.log(fn(3))
示例2
import {add} from 'rambda/dist/rambda.esm.js'
function fn(x) {
return add(2)(x)
}
console.log(fn(3))
我发现这是一个记录在案的错误 - https://github.com/webpack/webpack/issues/4674
当前的行为是什么? 当 module 的 package.json 包含浏览器、模块和主字段时,webpack 默认捆绑浏览器构建。
该错误在 6 个月内未解决,因此解决方案很丑陋 - 从package.json
中删除浏览器字段,以便Webpack
可以使用模块字段。