You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel项目跨电脑后Vite及依赖安装失败求助

Laravel项目跨电脑npm依赖解析错误解决指南

问题概述

将正常运行的Laravel项目迁移到新电脑后,npm无法安装依赖或使用现有插件,频繁触发ERESOLVE依赖树解析错误;使用npm install --legacy-peer-deps绕过校验后,运行npm run dev又出现vite.createFilter is not a function错误。当前环境:npm 9.5.1,Laravel 9.30.1;曾通过apt-get install vite安装过Vite后卸载,怀疑此操作可能引发问题。

具体报错情况

1. 运行npm i时的ERESOLVE错误

ubulara@DESKTOP-B4JC6VG:~/aramis/project$ npm i
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: undefined@undefined
npm ERR! Found: vite@2.9.16
npm ERR! node_modules/vite
npm ERR!   dev vite@"^2.9.11" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer vite@"^3.0.0" from @vitejs/plugin-vue@3.2.0
npm ERR! node_modules/@vitejs/plugin-vue
npm ERR!   dev @vitejs/plugin-vue@"^3.0.1" from the root project

2. 安装指定版本@vitejs/plugin-vue@3.0.1时的错误

ubulara@DESKTOP-B4JC6VG:~/aramis/project$ npm i @vitejs/plugin-vue@3.0.1
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: undefined@undefined
npm ERR! Found: vite@2.9.16
npm ERR! node_modules/vite
npm ERR!   dev vite@"^2.9.11" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer vite@"^3.0.0" from @vitejs/plugin-vue@3.0.1
npm ERR! node_modules/@vitejs/plugin-vue
npm ERR!   dev @vitejs/plugin-vue@"3.0.1" from the root project

3. 安装指定版本vite@2.9.11时的错误

ubulara@DESKTOP-B4JC6VG:~/aramis/project$ npm install vite@2.9.11
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: undefined@undefined
npm ERR! Found: vite@2.9.11
npm ERR! node_modules/vite
npm ERR!   dev vite@"2.9.11" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer vite@"^3.0.0" from @vitejs/plugin-vue@3.2.0
npm ERR! node_modules/@vitejs/plugin-vue
npm ERR!   dev @vitejs/plugin-vue@"^3.0.1" from the root project

4. 使用--legacy-peer-deps后运行npm run dev的错误

ubulara@DESKTOP-B4JC6VG:~/aramis/project$ npm run dev

> dev
> vite

failed to load config from /home/ubulara/aramis/project/vite.config.js
error when starting dev server:
TypeError: vite.createFilter is not a function
    at vuePlugin (/home/ubulara/aramis/project/node_modules/@vitejs/plugin-vue/dist/index.cjs:2601:23)
    at Object.<anonymous> (/home/ubulara/aramis/project/vite.config.js:43:35)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at require.extensions.<computed> [as .js] (/home/ubulara/aramis/project/node_modules/vite/dist/node/chunks/dep-689425f3.js:62006:20)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at loadConfigFromBundledFile (/home/ubulara/aramis/project/node_modules/vite/dist/node/chunks/dep-689425f3.js:62014:17)
    at loadConfigFromFile (/home/ubulara/aramis/project/node_modules/vite/dist/node/chunks/dep-689425f3.js:61933:32)

5. 再次运行npm i的错误

ubulara@DESKTOP-B4JC6VG:~/aramis/project$ npm i
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR! 
npm ERR! While resolving: @vitejs/plugin-vue@3.2.0
npm ERR! Found: vite@2.9.15
npm ERR! node_modules/vite
npm ERR!   dev vite@"^2.9.11" from the root project
npm ERR!   peer vite@"^2.9.9" from laravel-vite-plugin@0.4.0
npm ERR!   node_modules/laravel-vite-plugin
npm ERR!     dev laravel-vite-plugin@"^0.4.0" from the root project
npm ERR!   1 more (vite-plugin-full-reload)
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer vite@"^3.0.0" from @vitejs/plugin-vue@3.2.0
npm ERR! node_modules/@vitejs/plugin-vue
npm ERR!   dev @vitejs/plugin-vue@"^3.0.1" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: vite@3.2.7
npm ERR! node_modules/vite
npm ERR!   peer vite@"^3.0.0" from @vitejs/plugin-vue@3.2.0
npm ERR!   node_modules/@vitejs/plugin-vue
npm ERR!     dev @vitejs/plugin-vue@"^3.0.1" from the root project

当前项目package.json内容

{
    "private": true,
    "scripts": {
        "dev": "vite",
        "build": "vite build"
    },
    "devDependencies": {
        "@popperjs/core": "^2.10.2",
        "@vitejs/plugin-vue": "^3.0.1",
        "axios": "^0.25",
        "bootstrap": "^5.2.1",
        "laravel-vite-plugin": "^0.4.0",
        "lodash": "^4.17.19",
        "postcss": "^8.1.14",
        "resolve-url-loader": "^3.1.2",
        "sass": "^1.32.11",
        "sass-loader": "^11.0.1",
        "vite": "^2.9.11",
        "vue": "^3.2.37",
        "vue-template-compiler": "^2.6.12"
    }
}

解决方案

1. 清理残留文件与缓存

执行以下命令彻底清除现有依赖残留和npm缓存:

rm -rf node_modules
rm package-lock.json
npm cache clean --force

2. 修正依赖版本冲突

核心问题是laravel-vite-plugin@0.4.0要求vite@^2.9.9,而@vitejs/plugin-vue@3.x要求vite@^3.0.0,版本不兼容。需要将@vitejs/plugin-vue降级到适配Vite 2的版本,修改package.json中的对应依赖:

"@vitejs/plugin-vue": "^2.3.4",
"vite": "^2.9.11",
"laravel-vite-plugin": "^0.4.0"

3. 重新安装依赖

修改完成后运行:

npm install

4. 检查并移除全局Vite残留

之前通过apt安装的Vite可能存在全局残留,执行以下命令检查:

npm list -g vite

如果存在全局Vite,执行以下命令卸载:

npm uninstall -g vite

问题原因说明

  • 跨电脑后npm版本差异:npm 9对peer依赖的校验逻辑比旧版本更严格,原有项目可能依赖旧版npm的宽松校验或使用了--legacy-peer-deps。
  • 版本范围导致自动升级:@vitejs/plugin-vue@^3.0.1的版本范围会拉取最新的3.x版本(如3.2.0),而该版本要求Vite 3,与项目依赖的Vite 2冲突。
  • 全局Vite残留:通过apt安装的Vite可能干扰本地项目依赖的加载逻辑。

内容的提问来源于stack exchange,提问作者LordMregal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 17:08:05