Linux环境执行npm run build报错找不到@vue/cli-plugin-router模块怎么解决?
报错详情
Error: Cannot find module :
'/usr/home/html/production/libs/laravel/app_inventory_v2/front/node_modules/@vue/cli-plugin-router/index.js'. Please verify that the package.json has a valid "main" entry
at tryPackage (node:internal/modules/cjs/loader:353:19)
at Function.Module._findPath (node:internal/modules/cjs/loader:566:18)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:94:18)
at idToPlugin (/usr/home/html/production/libs/laravel/app_inventory_v2/front/node_modules/@vue/cli-service/lib/Service.js:145:14)
at /usr/home/html/production/libs/laravel/app_inventory_v2/front/node_modules/@vue/cli-service/lib/Service.js:184:20
at Array.map ()
at Service.resolvePlugins (/usr/home/html/production/libs/laravel/app_inventory_v2/front/node_modules/@vue/cli-service/lib/Service.js:170:10) {
code: 'MODULE_NOT_FOUND',
path: '/usr/home/html/production/libs/laravel/app_inventory_v2/front/node_modules/@vue/cli-plugin-router/package.json',
requestPath: '@vue/cli-plugin-router'
}
产生原因
- 项目依赖安装不完整或
node_modules目录损坏:安装依赖过程中网络中断、进程意外退出会导致@vue/cli-plugin-router包的文件缺失 package.json中未声明@vue/cli-plugin-router依赖,或依赖版本与当前@vue/cli-service版本不兼容- 包管理器缓存异常,导致拉取的依赖包本身存在文件缺失
- Linux服务器权限不足:执行依赖安装命令时无对应目录写入权限,导致依赖文件未完整写入磁盘
- Node.js版本与项目要求的Vue CLI版本不匹配,导致依赖加载失败
排查修复步骤
- 首先进入项目前端目录:
cd /usr/home/html/production/libs/laravel/app_inventory_v2/front - 检查
package.json的devDependencies字段是否存在@vue/cli-plugin-router声明,若不存在则执行安装命令:npm install @vue/cli-plugin-router --save-dev - 若已声明依赖,先删除损坏的依赖目录和锁文件:
rm -rf node_modules rm -f package-lock.json yarn.lock pnpm-lock.yaml
- 清理包管理器缓存后重新安装依赖:
npm cache clean --force npm install
- 若安装时出现权限报错,可修改目录权限后重新安装(将参数替换为当前登录的服务器用户名、用户组):
sudo chown -R 你的用户名:你的用户组 /usr/home/html/production/libs/laravel/app_inventory_v2/front - 检查Node.js版本是否和项目要求一致,可通过nvm切换到对应版本后重新执行
npm run build验证
内容的提问来源于stack exchange,提问作者soma

