Nuxt 3.2配置ESlint启动报错:找不到ajv相关模块文件
Nuxt 3.2配置ESlint启动崩溃问题
配置信息
package.json
"devDependencies": { "@nuxt/eslint-config": "^0.1.1", "@nuxtjs/eslint-module": "^4.1.0", "eslint": "^8.43.0", "nuxt": "3.2.0" },
.eslintrc
{ "extends": ["@nuxt/eslint-config"] }
nuxt.config.ts
modules: ["@pinia/nuxt", "@nuxtjs/eslint-module"],
报错信息
ERROR 无法启动nuxt: 找不到模块 'ajv/dist/compile/codegen' 19:54:58 依赖栈: - C:\Work\Projects\lims-frontend\node_modules\ajv-keywords\dist\definitions\typeof.js - C:\Work\Projects\lims-frontend\node_modules\ajv-keywords\dist\keywords\typeof.js - C:\Work\Projects\lims-frontend\node_modules\ajv-keywords\dist\keywords\index.js - C:\Work\Projects\lims-frontend\node_modules\ajv-keywords\dist\index.js - C:\Work\Projects\lims-frontend\node_modules\schema-utils\dist\validate.js - C:\Work\Projects\lims-frontend\node_modules\schema-utils\dist\index.js - C:\Work\Projects\lims-frontend\node_modules\eslint-webpack-plugin\dist\options.js 19:54:34 - C:\Work\Projects\lims-frontend\node_modules\eslint-webpack-plugin\dist\index.js 依赖栈: - node_modules\ajv-keywords\dist\definitions\typeof.js - node_modules\ajv-keywords\dist\keywords\typeof.js - node_modules\ajv-keywords\dist\keywords\index.js - node_modules\ajv-keywords\dist\index.js - node_modules\schema-utils\dist\validate.js - node_modules\schema-utils\dist\index.js - node_modules\eslint-webpack-plugin\dist\options.js - node_modules\eslint-webpack-plugin\dist\index.js at Function.Module._resolveFilename (node:internal/modules/cjs/loader:995:15) at Function.Module._load (node:internal/modules/cjs/loader:841:27) at Module.require (node:internal/modules/cjs/loader:1067:19) at require (node:internal/modules/cjs/helpers:103:18) at Object.<anonymous> (node_modules\ajv-keywords\dist\definitions\typeof.js:3:19) at Module._compile (node:internal/modules/cjs/loader:1165:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10) at Module.load (node:internal/modules/cjs/loader:1043:32) at Function.Module._load (node:internal/modules/cjs/loader:878:12) at Module.require (node:internal/modules/cjs/loader:1067:19)
解决方法
方法1:降级ajv到兼容版本
报错根源是ajv-keywords依赖的ajv内部文件路径在新版ajv中已变更,需手动指定兼容版本:
- 安装ajv@6.x版本:
npm install ajv@6 --save-dev
- 删除
node_modules目录和package-lock.json(或yarn.lock)文件 - 重新安装所有依赖:
npm install
方法2:改用Nuxt 3推荐的ESlint集成方式
@nuxtjs/eslint-module更适配Nuxt 2,Nuxt 3建议直接通过脚本执行ESlint检查,无需在模块中引入:
- 修改
nuxt.config.ts,移除@nuxtjs/eslint-module:
modules: ["@pinia/nuxt"],
- 在
package.json中添加lint脚本:
"scripts": { "lint": "eslint .", "lint:fix": "eslint . --fix" }
- 执行
npm run lint即可完成代码检查,启动项目时不会再出现依赖冲突崩溃问题。
内容的提问来源于stack exchange,提问作者Ayan
相关产品推荐
相关产品推荐

