Firebase-Admin-pakke Typescript-feil i Cloud Functions Firestore: @types/googlemaps


Jeg har to prosjekter med lignende Cloud Functions-oppsett, begge bruker direkte Typescript-oppsett (ingen Webpack) lignende dette eksemplet eller dette.

En av dem bruker Firestore, den andre gjør det ikke. Den som ikke bruker Firestore kompilerer og distribuerer uten feil.

Men den med Firestore-funksjoner gir meg denne feilen ved tsc-kompilering:

../node_modules/@types/googlemaps/index.d.ts(33,29): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(37,19): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(54,28): error TS2304: Cannot find name 'Node'.
../node_modules/@types/googlemaps/index.d.ts(787,30): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(798,36): error TS2304: Cannot find name 'Node'.
../node_modules/@types/googlemaps/index.d.ts(811,26): error TS2304: Cannot find name 'Node'.
../node_modules/@types/googlemaps/index.d.ts(1135,20): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1136,22): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1137,18): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1138,22): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1139,23): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1140,23): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1141,29): error TS2304: Cannot find name 'Element'.

... and goes on.

Dette er package.json-avhengigheter:

"dependencies": {
    "@google-cloud/storage": "^1.5.0",
    "axios": "^0.17.1",
    "child-process-promise": "^2.2.1",
    "firebase-admin": "~5.5.1",
    "firebase-functions": "^0.7.3"
  },
  "devDependencies": {
    "typescript": "^2.6.2"
  },

og innholdet i tsconfig:

{
  "compilerOptions": {
    "lib": ["es6", "es2015.promise"],
    "module": "commonjs",
    "noImplicitAny": false,
    "outDir": "build",
    "sourceMap": true,
    "target": "es6"
  },
  "include": [
    "src/**/*.ts"
  ],
  "exclude": [
    "node_modules"
  ]
}

Hva mangler jeg? Er det relatert til Typescript-versjonen? (2.6) Må jeg importere en @types? Å legge til dev-avhengighet @types/node hjalp ikke.

Svar #1

Først trodde jeg problemet var utelukkelsen av node_modules-mappen i tsconfig-filen og fjernet "exclude": [ "node_modules" ]-delen. Det hjalp ikke.

Siden alle feil ser ut til å være relatert til DOM-elementnavn eller "Node", bør det være en manglende typedefinisjon av en generell pakke, derfor gjorde jeg et nytt søk om dette og kom over dette svaret på et lignende spørsmål: Typescript-bygge får feil fra node_modules-mappen

Å endre tsconfig på denne måten (legge til referanse til lib.es6.d.ts) gjør at problemet mitt forsvinner:

  "include": [
    "src/**/*.ts"
  ],
  "files": [
    "node_modules/typescript/lib/lib.es6.d.ts"
  ],
  "exclude": [
      "node_modules"
  ]

Svar #2

Å legge til "skipLibCheck": true i tsconfig.json gjør også trikset.

kreditt - https://github.com/firebase/firebase-tools/issues/749#issuecomment-385693352

Relaterte artikler