javascript - Kan inte hitta modulen 'firebase-admin/app' - Hur fixar man det?


Jag använder Typescript med firebase-admin för Firebase Cloud Function och får "Cannot find module 'firebase-admin/app'" när jag kompilerar koden med TS. Har redan försökt:

  • Installera om beroende
  • Radera node_modules

Min import:

import { initializeApp } from 'firebase-admin/app';

Jag har också försökt ändra importen till följande. Då är TS nöjd, men Firebase Cloud Function kastar ett fel "kan inte hitta modul 'firebase-admin/app'"

const { initializeApp }  = require('firebase-admin/app')

Min Package.json

{
  "name": "functions",
  "scripts": {
    "build": "tsc",
    "serve": "npm run build && firebase emulators:start --only functions",
    "shell": "npm run build && firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "16"
  },
  "main": "lib/index.js",
  "dependencies": {
    "firebase-admin": "^10.0.2",
    "firebase-functions": "^3.14.1",
    "moment": "^2.29.1",
    "node-fetch": "2.6.7"
  },
  "devDependencies": {
    "firebase-functions-test": "^0.2.0",
    "typescript": "^3.8.0"
  },
  "private": true
}

Det här är min tsconfig.json.

{
  "compilerOptions": {
    "module": "commonjs",
    "noImplicitReturns": true,
    "noUnusedLocals": false,
    "outDir": "lib",
    "sourceMap": true,
    "strict": false,
    "target": "es2017"
  },
  "compileOnSave": true,
  "include": [
    "src"
  ]
}

Svar #1

Du använder "firebase-admin": "^10.0.2" som använder exports i modulens package.json för att definiera ingångspunkterna. Detta kommer inte att fungera med eslint-plugin-import. Använd raden nedan i början av filen och försök igen.

// eslint-disable-next-line import/no-unresolved

Relaterade artiklar