在vite中构建包含不必要的文件

154
2
跳到解决方案
12-05-2022 06:35上午
ae
通过
偶然的因素

我们有一个简单的应用程序显示一个地图,使用es模块和Vite构建(我们不设置assetsPath)。当我们执行“npm run build”时,我们最终在dist/assets文件夹中有近300个来自arcgis api for js的文件。

当运行构建的应用程序时,我们可以看到这300个文件中的一些文件被导入和使用,但远远不是所有文件。例如,资产文件夹包括WMTSLayer的文件,虽然我们不使用WMTS层在我们的应用程序。

为什么包含在构建中的文件显然没有被应用程序使用?为什么文件没有被捆绑?

标签(1)
0荣誉
1解决方案

接受的解决方案
ReneRubalcava
通过
经常贡献者II

这是因为在API中使用了动态导入。我们不能总是确定在构建时呈现和加载门户项目需要什么,因此动态导入允许JS根据需要加载模块。Vite使用esbuild,将在运行时输出它认为可能需要的所有文件。

有一些额外的信息在我们的github样本回购。

https://github.com/Esri/jsapi-resources/tree/main/esm-samples#bundle-size-and-performance

在原帖子中查看解决方案

0荣誉
2回答
ReneRubalcava
通过
经常贡献者II

这是因为在API中使用了动态导入。我们不能总是确定在构建时呈现和加载门户项目需要什么,因此动态导入允许JS根据需要加载模块。Vite使用esbuild,将在运行时输出它认为可能需要的所有文件。

有一些额外的信息在我们的github样本回购。

https://github.com/Esri/jsapi-resources/tree/main/esm-samples#bundle-size-and-performance

0荣誉
ae
通过
偶然的因素

谢谢你的澄清!我认为这将是伟大的,如果你可以添加一两句话,这与建筑与es模块页面:https://developers.arcgis.com/javascript/latest/es-modules/我敢肯定,还有很多人也有同样的疑问。

0荣誉