繁体   English   中英

Cloud Functions Firestore 中的 Firebase-Admin 包 Typescript 错误:@types/googlemaps

[英]Firebase-Admin package Typescript error in Cloud Functions Firestore : @types/googlemaps

我有两个具有类似 Cloud Functions 设置的项目,都直接使用类似于此示例示例的Typescript 设置(无 Webpack)

其中一个使用 Firestore,另一个不使用。 不使用 Firestore 的编译和部署没有错误。

但是,带有 Firestore 函数的函数在tsc编译时给了我这个错误:

../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.

这些是package.json依赖项:

"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"
  },

tsconfig 的内容:

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

我错过了什么? 它与Typescript版本有关吗? (2.6) 我需要导入@types吗? 添加 dev-dependency @types/node没有帮助。

起初我以为问题是排除node_modules文件夹中tsconfig文件,并删除"exclude": [ "node_modules" ]部分。 它没有帮助。

然后,由于所有错误似乎都与 DOM 元素名称或“节点”有关,因此它应该与某个通用包的类型定义缺失有关,因此对该问题进行了另一次搜索并遇到了类似问题的答案: Typescript build getting node_modules 文件夹中的错误

像这样更改tsconfig (添加对lib.es6.d.ts引用)使我的问题消失:

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

"skipLibCheck": true添加到 tsconfig.json 也可以解决问题。

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

有一个类似的问题:

node_modules/@google-cloud/firestore/types/firestore.d.ts:1629:8 - 错误 TS2304:找不到名称“AsyncIterable”。

对我来说,更新(从 3.12 到 3.13)firebase-functions 有帮助。

我在 Firebase 函数项目中遇到了这个问题。 完整解决方案

node_modules/@google-cloud/firestore/types/firestore.d.ts:1629:8 - 错误 TS2304:找不到名称“AsyncIterable”。

  1. 在您的项目文件夹中,在 cmd 中运行: npm install -g npm-check-updates
  2. 在你的项目文件夹中, fo 到/functions并在 cmd 中运行它: ncu -u在这里你会看到这样的东西:
 firebase-admin ^9.2.0 → ^9.5.0 firebase-functions ^3.11.0 → ^3.13.1 googleapis ^40.0.0 → ^67.0.0 typescript ^3.8.0 → ^4.1.5 firebase-functions-test ^0.2.0 → ^0.2.3
  1. 在 cmd 中运行: npm install
  2. 此时,您可以尝试再次部署,但您可能会收到此错误: node_modules/@google-cloud/firestore/types/firestore.d.ts:1638:8 - 错误 TS2583:找不到名称 'AsyncIterable'。 你需要改变你的目标库吗? 尝试将lib编译器选项更改为“es2018”或更高版本。
  3. 如果上一步出错,请打开文件functions/tsconfig.json并更新target节点的值,如错误文本中所述,在我的情况下,我更新到es2018并且部署应该可以正常运行

ps 不要忘记保存每个更改,只需 Ctrl+S ;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM