Closed robert0609 closed 3 years ago
不要改成总是按需加载,vite 在开发模式下 import 子模块容易出问题。
可以作为一个配置项放在 ImportPluginOptions 中:
export type ImportPluginOptions = Array<{
[key: string]: any;
libraryName: string;
libraryDirectory?: string;
camel2DashComponentName?: boolean;
+ onlyBuild: true, // 默认只在 build 模式下开启
}>;
const plugins = options.map(...).filter(Boolean) // 在 map 内判断是否需要引入 babel-plugin-import
不要改成总是按需加载,vite 在开发模式下 import 子模块容易出问题。
可以作为一个配置项放在 ImportPluginOptions 中:
export type ImportPluginOptions = Array<{ [key: string]: any; libraryName: string; libraryDirectory?: string; camel2DashComponentName?: boolean; + onlyBuild: true, // 默认只在 build 模式下开启 }>;
const plugins = options.map(...).filter(Boolean) // 在 map 内判断是否需要引入 babel-plugin-import
“vite 在开发模式下 import 子模块容易出问题”,请教一下会出什么问题呢?
@robert0609 旧版本的 Vite 如果需要引入子路径,需要手动把子路径添加到 optimizeDeps 里面,否则会出问题。
但是我试了下最新版本的 Vite,好像能根据 import 的路径自动 optimize 了,但是也是存在一些缺陷的:它只会在解析到 import 子路径后才会去做 optimize,而 optimize 的过程是异步的,完成之后页面会刷新。
所以会导致奇怪的行为: 第一次启动,打开页面后,页面会刷新几次。 执行操作,比如打开弹窗之类的,用到了某个新的(首屏渲染没用到的)子模块,页面也会刷新。
好,多谢。我明白了,这个我加一个选项来控制一下
released v0.3.0
支持在开发模式下的按需加载