SvelteKit构建报错:rollup-plugin-dynamic-import-variables解析自定义文件失败
问题根因
你当前的配置不生效,是因为手动新增的rollup-plugin-dynamic-import-variables实例不会覆盖SvelteKit内置的同插件实例,两个实例同时运行时,内置实例仍会正常扫描你的自定义文件抛出错误。
解决方案
你可以根据需求选择以下任意一种方案:
方案1:彻底禁用该插件(适合完全不用动态导入的场景)
直接过滤掉SvelteKit内置的该插件即可,完整配置如下:
// @type {import('@sveltejs/kit').Config} import adapter from '@sveltejs/adapter-static'; const config = { kit: { target: '#svelte', adapter: adapter({ pages: 'build', assets: 'build', fallback: null }), vite: { plugins: (defaultPlugins) => { return defaultPlugins.filter(plugin => plugin.name !== 'rollup-plugin-dynamic-import-variables' ) } } } }; export default config;
方案2:仅排除自定义文件(保留插件功能)
如果后续可能用到动态导入,只需要给内置插件添加你的自定义文件后缀到排除规则即可,假设你的自定义文件后缀为.custom,配置如下:
// @type {import('@sveltejs/kit').Config} import adapter from '@sveltejs/adapter-static'; const config = { kit: { target: '#svelte', adapter: adapter({ pages: 'build', assets: 'build', fallback: null }), vite: { plugins: (defaultPlugins) => { return defaultPlugins.map(plugin => { if (plugin.name === 'rollup-plugin-dynamic-import-variables') { // 替换为你实际的自定义文件后缀匹配规则 plugin.exclude = [...(plugin.exclude || []), '**/*.custom'] } return plugin }) } } } }; export default config;
如果不确定插件名称,可以在filter/map遍历过程中打印所有plugin.name确认即可。
内容的提问来源于stack exchange,提问作者John Deighan
相关产品推荐
相关产品推荐

