如何减少 React Leaflet 的包大小?
How do I reduce the bundle size of React Leaflet?
我有一个 Gatsby.js 项目,其中我的包的解析大小为 3.92 MB。 1.1 MB 其中 leaflet-src.js
。 Leaflet 似乎还提供了 leaflet.js
,它只有 508 KB。阅读 this issue 后,每当我导入 Leaflet 时,我总是导入这个较小的版本,如下所示:
import L from "leaflet/dist/leaflet"
无论如何,每当我 运行 Webpack Bundle Analyzer 时,都会导入 leaflet-src.js
和 leaflet.js
:
Webpack Bundle Analyzer Result
我提到的 GitHub 问题似乎是在暗示配置 webpack 以使用优化版本,但我真的很难弄清楚如何做到这一点。
非常感谢任何帮助。
所以这可能是 react-leaflet 如何导入传单的问题。虽然从您的代码到 leaflet 的任何直接引用都可以使用 import L from "leaflet/dist/leaflet"
选项,但 react-leaflet 源代码和构建代码只是从 'leaflet' 导入,并假设您将 leaflet 作为对等依赖项。所以这意味着 react-leaflet 正在引入未缩小的版本,如前所述 here.
正如 react-leaflet 作者 LeCam 所说,你必须自己管理它。你必须找到一种方法来告诉 webpack 将所有对 'leaflet' 模块的引用替换为对 'leaflet/dist/leaflet' 文件的指示。您可以先查看 redirect an import issue with webpack, or the NormalModuleReplacement plugin.
此外,这应该有助于您自己的代码,因为您可以 import L from 'leaflet'
,如果您正确设置了 webpack,它将重定向到缩小版本。
我有一个 Gatsby.js 项目,其中我的包的解析大小为 3.92 MB。 1.1 MB 其中 leaflet-src.js
。 Leaflet 似乎还提供了 leaflet.js
,它只有 508 KB。阅读 this issue 后,每当我导入 Leaflet 时,我总是导入这个较小的版本,如下所示:
import L from "leaflet/dist/leaflet"
无论如何,每当我 运行 Webpack Bundle Analyzer 时,都会导入 leaflet-src.js
和 leaflet.js
:
Webpack Bundle Analyzer Result
我提到的 GitHub 问题似乎是在暗示配置 webpack 以使用优化版本,但我真的很难弄清楚如何做到这一点。
非常感谢任何帮助。
所以这可能是 react-leaflet 如何导入传单的问题。虽然从您的代码到 leaflet 的任何直接引用都可以使用 import L from "leaflet/dist/leaflet"
选项,但 react-leaflet 源代码和构建代码只是从 'leaflet' 导入,并假设您将 leaflet 作为对等依赖项。所以这意味着 react-leaflet 正在引入未缩小的版本,如前所述 here.
正如 react-leaflet 作者 LeCam 所说,你必须自己管理它。你必须找到一种方法来告诉 webpack 将所有对 'leaflet' 模块的引用替换为对 'leaflet/dist/leaflet' 文件的指示。您可以先查看 redirect an import issue with webpack, or the NormalModuleReplacement plugin.
此外,这应该有助于您自己的代码,因为您可以 import L from 'leaflet'
,如果您正确设置了 webpack,它将重定向到缩小版本。