Vite.config.js出现TypeError: (0 , import_vite_plugin_html.vitePluginHtml) is not a function错误,开发服务器无法启动求助
我已经被这个问题卡了两天了,连ChatGPT给出的解决方案都是重复循环的套话,完全解决不了实际问题。我试过升级/降级依赖包、修复导入语句、重置相关.js文件,能想到的办法都试了一遍,但Vite开发服务器就是启动不起来,一直报这个TypeError。下面是我的终端完整输出,应该能明确问题所在:
PS D:*******\raone\my-vite-app> npm run dev
personal-assistant@0.0.0 dev
viteERROR failed to load config from D:****\my-vite-app\vite.config.js
ERROR error when starting dev server: 19:45:56
TypeError: (0 , import_vite_plugin_html.vitePluginHtml) is not a function
at Object.(D:* ***\my-vite-app\vite.config.js:37:48)
at Module._compile (node:internal/modules/cjs/loader:1254:14)
at require.extensions.[as .js] (D:****\my-vite-app\node_modules\vite\dist\node\chunks\dep-6e2fe41e.js:62006:20) *\my-vite-app\node_modules\vite\dist\node\chunks\dep-6e2fe41e.js:62014:17)
at Module.load (node:internal/modules/cjs/loader:1117:32)
at Module._load (node:internal/modules/cjs/loader:958:12)
at Module.require (node:internal/modules/cjs/loader:1141:19)
at require (node:internal/modules/cjs/helpers:110:18)
at loadConfigFromBundledFile (D:***
at loadConfigFromFile (D:****\my-vite-app\node_modules\vite\dist\node\chunks\dep-6e2fe41e.js:61933:32)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
PS D:*****\my-vite-app>
我本来以为执行npm run dev后会自动在浏览器打开应用,但现在服务器根本启动不起来。结合自己的排查经验,整理了几个可能的原因和对应的修复方案:
可能的原因及修复方案
1. vite-plugin-html版本不兼容或导入方式错误
这个错误最核心的原因大概率是你安装的vite-plugin-html版本和当前Vite版本不匹配,或者插件的导入/调用方式写错了。
- 检查版本适配性:先确认
vite-plugin-html的版本是否适配你的Vite版本。比如最新版的vite-plugin-html已经将导出名称从vitePluginHtml改成了createHtmlPlugin,如果还按旧方式调用就会报错。 - 修正导入与调用:
如果你用的是新版vite-plugin-html,正确的配置写法应该是:
如果非要用旧版本,可以先卸载重装指定版本:import { defineConfig } from 'vite'; import { createHtmlPlugin } from 'vite-plugin-html'; export default defineConfig({ plugins: [ createHtmlPlugin({ // 这里填你的插件配置,比如注入模板变量 inject: { data: { pageTitle: '我的Vite应用' } } }) ] });npm uninstall vite-plugin-html npm install vite-plugin-html@2.1.1 # 举例一个旧版本号
2. Vite配置文件语法错误
重点检查vite.config.js的第37行(错误提示的位置),确认调用插件的地方有没有拼写错误,或者参数格式不对。比如是否少写了括号、引号,或者插件配置对象的结构不符合要求。
3. 依赖缓存或冲突问题
有时候node_modules里的缓存文件会导致奇怪的依赖冲突,可以尝试以下步骤重置:
- 删除
node_modules文件夹和锁文件:rm -rf node_modules package-lock.json - 重新安装所有依赖:
npm install - 清除Vite的缓存后重启:
npm run dev -- --clear-cache
4. Node.js版本不兼容
Vite和vite-plugin-html对Node.js版本有要求(一般需要14.18+或16+),可以通过node -v查看当前版本,如果版本过低,建议升级到Node.js的LTS版本。
备注:内容来源于stack exchange,提问作者V2run DD

