执行npm run lint命令时出现Cannot find module './linters/rubocop'错误求助
解决
npm run lint报错“Cannot find module './linters/rubocop'” 问题情况
执行npm run lint(实际对应命令为npx lint "src/**/*.{js,jsx,ts,tsx,html}" --quiet --fix)时,出现以下错误:
Error: Cannot find module './linters/rubocop'
Require stack:
- /usr/local/lib/node_modules/lint/utils/linter.js
- /usr/local/lib/node_modules/lint/index.js
at Function.Module._resolveFilename(node:internal/modules/cjs/loader:1026:15)
at Function.Module._load(node:internal/modules/cjs/loader:871:27)
at Module.require(node:internal/modules/cjs/loader:1098:19)
at require(node:internal/modules/cjs/helpers:108:18)
at Object.(/usr/local/lib/node_modules/lint/utils/linter.js:50:5)
at Module._compile(node:internal/modules/cjs/loader:1196:14)
at Object.Module._extensions..js(node:internal/modules/cjs/loader:1250:10)
at Module.load(node:internal/modules/cjs/loader:1074:32)
at Function.Module._load(node:internal/modules/cjs/loader:909:12)
at Module.require(node:internal/modules/cjs/loader:1098:19)
{ code: 'MODULE_NOT_FOUND', requireStack: [ '/usr/local/lib/node_modules/lint/utils/linter.js', '/usr/local/lib/node_modules/lint/index.js' ] }
已安装环境版本:
- npm 8.10.0
- nodejs v16.20
- angular CLI 14.2.11
项目package.json内容可参考。
解决方案
核心原因
你全局安装的lint包并非前端项目常用的ESLint工具,而是一个包含Ruby代码检查工具的包,它尝试加载Ruby的rubocop模块,但你的环境未配置相关依赖,导致报错。
具体步骤
- 卸载全局错误的
lint包
执行以下命令清理全局包:
npm uninstall -g lint
- 使用项目本地ESLint(推荐)
修改项目package.json中的lint脚本为(若未正确配置):
"lint": "eslint \"src/**/*.{js,jsx,ts,tsx,html}\" --quiet --fix"
之后直接执行项目脚本:
npm run lint
该方式会调用项目本地安装的ESLint,避免全局包版本冲突或工具不匹配问题。
- Angular项目专属方案
Angular CLI自带代码检查命令,可直接执行:
ng lint
该命令会自动读取项目配置的lint规则,无需手动指定文件路径。
- 如需全局使用ESLint
若要全局安装前端用的ESLint工具,执行:
npm install -g eslint
之后可通过npx eslint或全局eslint命令调用,但仍优先推荐使用项目本地依赖。
内容的提问来源于stack exchange,提问作者cekodis681 cekodis681
相关产品推荐
相关产品推荐

