![](/img/trans.png)
[英]firebase-admin with typescript in firebase cloud functions
[英]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”。
npm install -g npm-check-updates
/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
npm install
lib
编译器选项更改为“es2018”或更高版本。functions/tsconfig.json
并更新target
节点的值,如错误文本中所述,在我的情况下,我更新到es2018
并且部署应该可以正常运行ps 不要忘记保存每个更改,只需 Ctrl+S ;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.