可疑的 iconv-lite 依赖

Questionable iconv-lite dependency

我在一个 Angular 项目中工作了几个月,包大小非常大,我一直在尝试最小化主包并延迟加载一些路由。使用 webpack-bundle-analyzer 我看到捆绑包的很大一部分(g 压缩)是一个名为 iconv-lite 的包,它存在于 encoding 下,但我找不到包的哪一部分应用程序正在使用它。

angular 正在使用它吗?有人有想法吗?我可以在我的 yarn.lock 中看到一些东西与它有依赖关系,比如 jestless 但那些不应该包含在主包中。

很高兴在这里进入某个方向。

经过大量调查,我们发现问题出在名为 gettext-parser 的依赖项上。 gettext-parser 不适用于浏览器。 Webpack 填充了所需的 node.js 模块,其中之一是 body-parser,然后依次是 iconv-lite.

我们通过更新到 Angular 12 发现了这一点,当时 webpack@5 停止了 polyfilling node.js 依赖项并且它在构建过程中开始抛出错误。