执行前,运行部分预脚本:(提示是否运行此脚本)(你正试图运行自定义脚本,自定义脚本可能危害到)
假设每个模块的平均施工时间为3S,则18S的总冷启动施工时间可减少至3S。
有关更多详细信息,我们假设我们的路由代码如下:
我们需要做的是,每次启动项目时,我们都可以通过预命令行脚本收集这次需要启动的模块,并根据需要生成所需的模块。
我们试图:
无需更改上层代码
通过在不影响项目的情况下生成临时管线文件来替换原始管线文件
使用此插件,您可以根据编译阶段的配置生成新的路由配置文件,而无需修改原始路由配置文件。这样做的好处是它不会侵入整个源代码。
修改我们的启动脚本。执行前,运行部分预脚本:
需要做的是实现一个交互式命令。用户选择这次要启动的模块列表并生成新文件。
模板代码的简单描述:
模板代码是EJS模板文件,是用户在输入终端时选择的模块集数组。基于此列表,我们生成一个新文件。
通过这种方式,我们实现了模块化构建和按需依赖收集。以我们的项目为例。我们的整个项目有大约20个不同的模块和数十万行代码:
建筑模块的数量
冷启动:完成20个模块的构建
4.5分钟
冷启动:仅构建1个模块
18秒
使用缓存构建模块两次
4.5秒
实际效果如下:不需要启动所有模块,只需启动选定的模块进行相应的开发:
因此,如果单个开发只涉及固定模块,单个项目的冷启动时间可以从原来的4min+缩短到约18S。然而,在缓存状态下构建模块只需4.5秒,这是一个相对较大的改进。
我们都知道vite速度很快。主要在哪里
更快的项目冷启动
热更新更快
那么是什么让它这么快
这个过程非常非常耗时。让我们看看vite:
Vite通过在开始时将应用程序中的模块划分为依赖项和源代码,提高了开发服务器的启动时间。其速度的核心在于两点:
Vite将许多内部模块的ESM依赖关系转换为单个模块,以提高后续页面加载性能。如果不编译,每个依赖项包可能包含多个其他依赖项,每个导入的依赖项将有另一个请求,这将花费更多的时间
更快的项目冷启动
发表评论