Visual Studio 找不到 Firebase 节点模块

Posted

技术标签:

【中文标题】Visual Studio 找不到 Firebase 节点模块【英文标题】:visual studio not finding firebase node module 【发布时间】:2015-07-04 02:01:10 【问题描述】:

我从项目文件夹的根目录中使用了命令npm install firebase --save,并且一个firebase 文件夹成功添加到我的node_modules 文件夹中,并且packages.json 也被更新了。

我也使用 typescript,所以我有一个 app.ts 文件,我尝试在其中执行 import Firebase = require("firebase");

但是它不起作用。我收到红色曲线和错误提示 cannot find external module "firebase"

我已经安装了 express 并在 app.ts 中导入它,效果很好,没有错误。

我试图查看 firebase 源,但它被缩小了,无法尝试在那里找到任何关于导出的内容等。

对可能出现的问题以及如何解决问题有任何想法吗?

【问题讨论】:

【参考方案1】:

三件事:

您应该使用 NuGet、TSD 或其他方法从“绝对类型化”中下载 Firebase 类型定义。 Definite Typed 上的 Firebase 定义似乎不是以外部模块形式编写的。您可能需要在其底部添加export = Firebase; 行。 TypeScript 目前对描述用 javascript 编写的外部模块的定义文件 (d.ts) 有奇怪的默认行为;它将在每个目录中搜索从文件返回到当前驱动器根目录的每个目录,查找名称与您导入的内容名称匹配的 .ts.d.ts 文件。所以最好的办法是将Firebase.d.ts 文件移动到项目的根目录。如果您有兴趣对此进行更多讨论,请查看https://github.com/Microsoft/TypeScript/issues/2338。他们正在努力。

如果你做了这三件事,它应该可以工作。

【讨论】:

谢谢!做到了。有点尴尬,我忘记了定义文件。但是第 2 点和第 3 点确实很有帮助。为了让它发挥作用,我实际上必须做更多的事情。我查看了 express.d.ts 的设置方式,它在顶层声明了一个与文件同名的模块,并在该模块的底部导出。当我使用 firebase.d.ts 执行此操作时,它开始工作。虽然这些文件的编辑不是最佳的.. 还是谢谢你。

以上是关于Visual Studio 找不到 Firebase 节点模块的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio Code:找不到名称 angular?

Visual Studio 代码:找不到飞镖

Visual Studio 找不到实体框架

microsoft visual studio 2008找不到一个或多个组件,请重新安装应用程序 的原因都有哪些?

为啥 Visual Studio 2012 找不到我的测试?

Visual Studio 架构比较找不到生成的脚本