【问题标题】:Firebase client library failing typingsFirebase 客户端库输入失败
【发布时间】:2018-06-17 12:00:59
【问题描述】:

我正在尝试最新的 Firebase npm 模块 (4.8.1)。我正在使用带有 webpack 捆绑的 commonjs 模块系统。为了确保我得到我需要的类型,我的package.json 中有以下内容:

"dependencies: {
  "firebase": "^4.8.1"
},
"devDependencies": {
  "@firebase/app": "^0.1.5",
  "@firebase/app-types": "^0.1.0",
  "@firebase/auth": "^0.3.1",
  "@firebase/auth-types": "^0.1.0",
  "@firebase/database": "^0.1.6",
  "@firebase/database-types": "0.1.0",
}

当我使用 tsc 进行编译时,我收到以下错误:

node_modules/@firebase/database/dist/esm/src/api/Database.d.ts(4,33):错误 TS2307:找不到模块“@firebase/app-types/private”。

node_modules/@firebase/database/dist/esm/src/core/AuthTokenProvider.d.ts(17,39):错误 TS2307:找不到模块“@firebase/app-types/private”。

我觉得这很奇怪有几个原因:

  1. 我使用的是 CommonJS 模块系统而不是 ESM
  2. 我假设@firebase/data-types 提供类型而不是实现代码。这就是为什么我将它列为 devDependency 而不是 dependency
  3. 即使我将所有 @firebase/* 切换为“依赖项”,它仍然会出现相同的错误
  4. 我确实看到其他人在here 上发帖说 Firebase 4.8.1 有一个错误,回滚到 4.8.0 可能会解决问题……但据我所知,4.8.0 有各种各样的“隐含任何”错误(也许我可以证明关闭),但在导出的 API 中还有许多其他弃用。简单地说,在我看来,4.8.1 作为打字参考要好得多。

【问题讨论】:

    标签: typescript firebase firebase-realtime-database


    【解决方案1】:

    使用以下tsconfig.json它对我来说很好:

    {
      "compilerOptions": {
        "target": "es2015",
        "module": "commonjs",
        "moduleResolution": "node",
        "inlineSourceMap": true
      }
    }
    

    src/index.ts 我只是这样导入:

    // This import loads the firebase namespace along with all its type information.
    import * as firebase from 'firebase';
    
    const firebaseApp = firebase.initializeApp({
      apiKey: '<your-api-key>',
      authDomain: '<your-auth-domain>',
      databaseURL: '<your-database-url>',
      storageBucket: '<your-storage-bucket>',
      messagingSenderId: '<your-sender-id>'
    });
    

    在我修改 tsconfig.json 之前,我遇到了类似的问题:

    {
    ...
      "devDependencies": {
        ...
      },
      "dependencies": {
        ...,
        "firebase": "^4.8.1"
      }
    }
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 2011-11-21
      • 2017-03-14
      • 2021-07-25
      • 2019-10-08
      相关资源
      最近更新 更多