【问题标题】:Using TypeScript with Firebase - Cannot find module 'firebase/app'将 TypeScript 与 Firebase 一起使用 - 找不到模块“firebase/app”
【发布时间】:2020-11-26 06:35:33
【问题描述】:

我正在尝试使用 Firebase 启动一个 TypeScript 项目,但我无法让 TypeScript 喜欢 import firebase from 'firebase/app'; 它给了我错误 Cannot find module 'firebase/app'。

但是,我知道它可以工作,因为我能够控制 firebase - Typescript 只是不喜欢它。我有什么特别需要做的吗?我看到有人说你必须安装@types/firebase,但它说它已被弃用。

编辑:

tsconfig:

{
    "compilerOptions": {
        "target": "esnext",
        "watch": true,
        "lib": [
            "DOM",
            "esnext"
        ],
        "moduleResolution": "node", // Tell tsc to look in node_modules for modules
        "strict": true,             // Strict types, eg. prohibits `var x=0; x=null`
        "alwaysStrict": true,        // Enable JavaScript's "use strict" mode
        "outDir": "./public"
    },
    "include": [
        "**/*.ts",
        "**/*.tsx"
    ],
    "exclude": [
        "node_modules"
    ]
}

我通过添加"moduleResolution": "node" 解决了上述问题。但是,现在当我像这样添加脚本时:<script type="module" src="/index.js"></script> 在 index.js 中只是 import * as firebase from 'firebase/app'; - 我得到一个浏览器错误:TypeError: Module specifier does not start with "/", "./", or "../". - 在 Safari 13.1 上测试。

有没有其他方法可以解决这个问题? Typescript、Firebase 均为最新版本。

【问题讨论】:

  • @types/firebase 已被弃用,因为firebase 正式发布了自己的类型。您的设置有问题。提供更多信息:firebase 包版本、typescript 版本、tsconfig.json。

标签: typescript firebase node-modules


【解决方案1】:

节点解析需要你从当前目录开始路径:

import * as firebase from './firebase/app'

【讨论】:

  • 当我这样做时它说它找不到模块。也许这是我安装 Firebase 的方式?它应该在 node_modules 中还是有不同的方法来构建它?另外,我不使用 Webpack 或任何其他模块框架;没有其中之一就不可能吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-10
  • 1970-01-01
  • 1970-01-01
  • 2019-05-19
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
相关资源
最近更新 更多