Laravel+Vite+Vue.js报错:Rollup无法识别平台架构,替换WASM无效
问题:Rollup无法识别平台/架构,替换WASM版本无效(Laravel+Vite+Vue环境)
环境信息
- Node v20.14.0
- npm 10.7.0
- Laravel v10.17.0
- 技术栈:Vite + Vue.js + Laravel(依赖laravel-vite-plugin)
错误现象
执行npm run dev启动开发服务后,浏览器控制台抛出以下错误:
Uncaught Error: Your current platform "undefined" and architecture "undefined" combination is not yet supported by the native Rollup build. Please use the WASM build "@rollup/wasm-node" instead.
已尝试操作
- 在
package.json中添加依赖覆盖配置:
"overrides": { "rollup": "npm:@rollup/wasm-node" }
- 错误地在
vite.config.js中添加overrides配置(Vite不支持该配置项):
overrides: { "rollup": "npm:@rollup/wasm-node" }
- 执行
npm install后重新启动服务,问题未解决 - 纯Vite+Vue项目(不含laravel-vite-plugin)无此异常
问题原因
- 环境识别被干扰:laravel-vite-plugin在加载过程中,可能修改或屏蔽了Node.js原生的
process.platform和process.arch变量,导致Rollup无法正确读取当前运行环境的平台与架构信息,返回undefined。 - 依赖覆盖未生效:npm的
overrides配置可能因laravel-vite-plugin的依赖树优先级问题,未能替换所有嵌套依赖中的Rollup版本;且Vite配置中不存在overrides选项,该配置完全无效。
解决方案
方案1:强制锁定Rollup为WASM版本并清理缓存
- 修正
package.json中的依赖覆盖配置,同时添加resolutions(兼容npm/yarn):
"overrides": { "rollup": "npm:@rollup/wasm-node@^4.0.0" }, "resolutions": { "rollup": "npm:@rollup/wasm-node@^4.0.0" }
- 删除依赖文件夹和锁文件:
rm -rf node_modules package-lock.json
- 重新安装依赖并启动服务:
npm install && npm run dev
方案2:在Vite配置中手动指定Rollup实例
修改vite.config.js,强制注入WASM版本的Rollup:
import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; import vue from '@vitejs/plugin-vue'; import { rollup } from '@rollup/wasm-node'; export default defineConfig({ plugins: [ laravel({ input: 'resources/js/app.js', refresh: true, }), vue({ template: { transformAssetUrls: { base: null, includeAbsolute: false, }, }, }), ], rollupDedupe: ['rollup'], optimizeDeps: { exclude: ['rollup'] }, build: { rollupOptions: { plugins: [rollup()] } } });
方案3:降级laravel-vite-plugin版本
部分新版本的laravel-vite-plugin存在依赖兼容问题,尝试降级到稳定版本:
npm install laravel-vite-plugin@^0.7.0 --save-dev
之后重复方案1中的清理缓存和重装依赖步骤。
内容的提问来源于stack exchange,提问作者soggypants
相关产品推荐
相关产品推荐

