我正在为Firebase编写我的第一个云函数,它需要firebase-tools
模块。我通过将它添加到package.json文件中的依赖项中并运行npm install
来安装它。
然后我尝试使用import * as tools from 'firebase-tools';
导入它,但我得到了这个错误:
找不到模块"firebase tools"的声明文件c:/Users/LENOVO/Nouveau档案/functions/nod_module firebase-tools/lib/index.js隐式地具有"any"类型。尝试
npm install @types/firebase-tools
(如果存在(,或者添加一个包含"declare module"firebase tools"的新声明(.d.ts(文件;
我也尝试过运行npm install @types/firebase-tools
,但显然它不存在,我不确定应该在该模块的(.d.ts(文件中放入什么。
所以我想问是否还有其他解决方案,如果我需要创建一个(.d.ts(文件,我应该在declare module 'firebase-tools
旁边放些什么。
我也有同样的问题。问题是firebase工具模块没有(.d.ts(文件。我发现在这种情况下我们有三种解决方案。
- 安装@types/xxx←你已经做了,但它并不存在
- 自制(.d.ts(文件←我不太清楚
- 使用"require"而不是"import"←我就这样解决了。模块包括隐式导入为"any"类型
当ts lint提醒您"[tslint]require语句不是导入语句的一部分(无var要求("时,您可以通过注释"//tslint:disable next line:no var要求"忽略它
感谢您的阅读。
我解决这个问题的方法是:
首先,将"firebase-tools": "^9.10.0"
添加到/functions
目录下的package.json
中,如下所示:
"dependencies": {
...
"firebase-admin": "^9.2.0",
"firebase-functions": "^3.13.1",
"firebase-tools": "^9.10.0"
},
然后,在函数代码中使用require
而不是import
,如下所示:
const firebase_tools = require('firebase-tools');
尝试将"noImplicitAny": false,
添加到tsconfig.json