ESLint报错无法解析模块'firebase-admin/app'问题求助
问题原因
该报错由eslint-plugin-import无法识别firebase-admin v10+版本的ESM模块导出结构导致,你的现有ESLint配置缺少适配Node ESM模块的解析规则。
修复步骤
- 第一步:安装必要的解析依赖
# npm npm install eslint-import-resolver-typescript eslint-import-resolver-node -D # yarn yarn add eslint-import-resolver-typescript eslint-import-resolver-node -D
如果你的项目里安装过@types/firebase-admin类型包请先卸载,firebase-admin v10及以上版本已自带官方类型定义,额外安装的第三方类型包会引发模块识别冲突:
npm uninstall @types/firebase-admin
- 第二步:修改你的
.eslintrc.js配置,新增settings字段配置模块解析规则
修改后的完整配置参考:
module.exports = { extends: [ 'airbnb-typescript/base', 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:typescript-sort-keys/recommended', 'plugin:import/recommended', 'prettier' ], parser : '@typescript-eslint/parser', parserOptions: { ecmaFeatures: { modules: true }, ecmaVersion: 'latest', // 建议将ecmaVersion升级为latest适配新语法 project : './tsconfig.json', sourceType : 'module' }, plugins: ['@typescript-eslint', 'typescript-sort-keys', 'sort-keys-fix'], // 新增以下配置 settings: { 'import/parsers': { '@typescript-eslint/parser': ['.ts', '.tsx'] }, 'import/resolver': { typescript: { alwaysTryTypes: true }, node: { extensions: ['.js', '.ts', '.json'] } }, 'import/extensions': ['.js', '.ts'], 'import/moduleDir': ['node_modules', 'src'] }, rules : { ... } }
- 第三步:检查
tsconfig.json配置
确保compilerOptions下的moduleResolution配置为Node16或NodeNext,适配ESM模块解析规则:
{ "compilerOptions": { "moduleResolution": "NodeNext", // 其余原有配置保持不变 } }
完成以上配置后重启ESLint服务即可生效。如果仍有报错,可在rules字段中临时添加忽略规则(不推荐优先使用,仅做临时兜底):
rules: { 'import/no-unresolved': [2, { ignore: ['^firebase-admin/'] }] }
内容的提问来源于stack exchange,提问作者Anthony Luzquiños
相关产品推荐
相关产品推荐

