firebase-adminがあったプロジェクトにfirebaseを入れたら「モジュール 'firebase' またはそれに対応する型宣言が見つかりません。」
Q&A
Closed
概要
Node.jsにて、firebase-admin
とfirebase
を併用したいです。
最初にfirebase-admin
を入れていたNode.jsのプロジェクトに、後からfirebase
を追加したところ、モジュール 'firebase' またはそれに対応する型宣言が見つかりません。
というエラーが出ました。
解決方法はおろか、原因も分からないです...。
どなたか、ご教授いただければと思います。
再現方法
以下は、問題が発生したプロジェクトのpackage.jsonの一部抜粋と、tsconfig.jsonです。
package.json
{
// ---snip---
"dependencies": {
"@nestjs/apollo": "^10.0.14",
"@nestjs/common": "^8.4.6",
"@nestjs/config": "^2.1.0",
"@nestjs/core": "^8.4.6",
"@nestjs/graphql": "^10.0.15",
"@nestjs/platform-express": "^8.4.6",
"@nestjs/testing": "^8.4.6",
"@prisma/client": "^3.15.1",
"apollo-server-core": "^3.8.2",
"apollo-server-types": "^3.6.0",
"class-transformer": "^0.5.1",
"class-validator": "^0.13.2",
"express": "^4.18.1",
"firebase-admin": "^11.0.0",
"graphql-tag": "^2.12.6",
"jest-mock-extended": "^2.0.6",
"rxjs": "^7.5.5",
"supertest-graphql": "^1.1.4",
"ts-pattern": "^4.0.3"
},
"devDependencies": {
"@apollo/rover": "^0.7.0",
"@nestjs/cli": "^8.2.6",
"@nestjs/schematics": "^8.0.11",
"@types/jest": "^28.1.1",
"@types/node": "^17.0.42",
"@typescript-eslint/eslint-plugin": "^5.27.1",
"@typescript-eslint/parser": "^5.27.1",
"apollo-server-express": "^3.8.2",
"eslint": "^8.17.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-prettier": "^4.0.0",
"graphql": "^16.5.0",
"jest": "^28.1.1",
"prettier": "^2.6.2",
"prisma": "^3.15.1",
"prisma-nestjs-graphql": "^16.0.1",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"ts-jest": "^28.0.4",
"ts-node": "^10.8.1",
"typescript": "^4.7.3"
}
// ---snip---
}
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"lib": ["ESNext"],
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "es2017",
"sourceMap": true,
"outDir": "./dist",
"baseUrl": "./",
"incremental": true,
"skipLibCheck": true,
"strictNullChecks": true,
"noImplicitAny": false,
"strictBindCallApply": false,
"forceConsistentCasingInFileNames": false,
"noFallthroughCasesInSwitch": false,
"esModuleInterop": true
}
}
ここに、以下のコマンドでfirebase
を追加しました。
yarn add firebase
そうしたところ、以下のコードで上記エラーが発生しました。
import { auth } from 'firebase';
補足
キャッシュを削除した
新しく別のプロジェクトを作成してfirebaseをimportしようとしたところ、全く同じエラーが出力されました。
これはもしやキャッシュに問題があるのではと思いyarn cache clean
を実行してから上記再現手順を踏んでみましたが、何の変化も現れませんでした...。
依存関係を入れる順番を変える
こちらの記事とIssuesを参考に、firebase
とfirebase-admin
をプロジェクトに導入する順番を変えてみました。
が、やはり解決には至りませんでした。
0