【问题标题】:Could not find a declaration file for module 'firebase-tools'找不到模块“firebase-tools”的声明文件
【发布时间】:2020-08-10 02:40:12
【问题描述】:

我正在为 Firebase 编写我的第一个云函数,它需要 firebase-tools 模块。我通过将它添加到 package.json 文件中的依赖项并运行 npm install 来安装它。

然后我尝试使用import * as tools from 'firebase-tools'; 导入它,但出现此错误:

找不到模块“firebase-tools”的声明文件。 'c:/Users/LENOVO/Nouveau dossier/functions/node_modules/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-tools 是一个命令行界面工具,不包含在 package.json 中。只需运行“npm install -g firebase-tools”即可安装工具。现在使用“firebase init”创建一个新的 firebase 项目。存在完整的文档here
  • 嘿Akshay,感谢您的回答。但我已经这样做了,但它仍然不起作用。我在 package.json 文件中包含了依赖项,因为这是他们在此链接中所做的:github.com/firebase/snippets-node/blob/master/firestore/…。据说这里也可以作为模块使用:npmjs.com/package/firebase-tools。我不确定我错过了什么,如果我错了,请纠正我。
  • 你能分享一下是什么不工作吗?你需要这个包做什么?
  • 当我尝试导入包时,我收到一条错误消息,指出该包没有声明文件。我正在尝试为 Firebase 编写一个云函数,它可以删除 Firestore 的集合及其子集合,并且我发现这需要这个包。当我打开已安装的软件包的 lib 文件夹时,有一个名为 'firestore' 的文件夹和一个名为 'delete' 的 JavaScript 文件,所以我想这就是我所需要的。其他包有自己的声明文件扩展名(.d.ts),但这个没有。
  • 大家好,文档here 明确表示我们需要在云函数中使用firebase-tools。但由于我的云功能是 TS,我也对如何执行它感到困惑。

标签: node.js typescript firebase google-cloud-functions firebase-tools


【解决方案1】:

我也有同样的问题。 问题是 firebase-tools 模块没有 (.d.ts) 文件。 我发现在这种情况下我们有 3 个解决方案。

  • 安装@types/xxx ←你已经完成了,但它不存在。
  • 自制 (.d.ts) 文件 ←我不太清楚。
  • 使用“require”而不是“import” ←我是这样解决的。模块是 隐式导入为“任何”类型。

当 ts-lint 提醒你“[tslint] require 语句不是 import 语句的一部分 (no-var-requires)”时,你可以通过注释 "// tslint:disable-next-line:no-var 忽略它-需要”

感谢您的阅读。

【讨论】:

  • 你知道为什么它没有 .d.ts 文件吗?他们为什么不默认为所有项目提供打字稿支持?
【解决方案2】:

我解决这个问题的方法是:

首先,将"firebase-tools": "^9.10.0" 添加到package.json 目录下的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');

【讨论】:

    猜你喜欢
    • 2021-04-29
    • 2017-08-13
    • 1970-01-01
    • 2021-01-02
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多