【问题标题】:Can't import PouchDB into Angular 5.2.0 application无法将 PouchDB 导入 Angular 5.2.0 应用程序
【发布时间】:2018-09-22 06:07:07
【问题描述】:

我正在尝试将 PouchDB 导入我的 Angular 应用程序。我测试了不同的导入方法:

import PouchDB from 'pouchdb';
import * as PouchDB from 'pouchdb';

我像下面这样在服务中使用它:

database: PouchDB.Database = new PouchDB(DATABASE_URL);

如果我这样做:import PouchDB from 'pouchdb',我会收到以下错误消息:

src/app/core/pouchdb/pouchdb.service.ts(3,8):错误 TS1192:模块 '"{PATH_OF_PROJECT}/node_modules/@types/pouchdb/index"' 没有默认导出。

如果我这样做:import * as PouchDB from 'pouchdb',我会收到以下错误消息:

ERROR TypeError: PouchDB is not a constructor at new PouchDBService


这里是不同包的版本:

  • PouchDB:6.4.3
  • @types/pouchdb:6.3.2
  • Angular 包:5.2.0
  • @angular/cli : 1.7.4

提前感谢您的回答。

【问题讨论】:

  • 您使用的是什么打字稿版本?我无法重现该问题 -> stackblitz.com/edit/angular-j8dk8h
  • 我使用的是 typescript 2.5.3。唯一的区别是您使用 Angular 包的 5.2.8 版本
  • 我将 stackblitz 更改为使用 5.2.0 和 typescript 2.5.3(尽管我无法验证它是否真的使用 2.5.3)并且它仍然有效。你最近更新了一些包吗?有时删除整个node_modules 文件夹并再次运行npm install 会有所帮助
  • 这是一个新项目,所以我没有更新软件包。我已经完成了所有 node_modules 的重新安装。
  • 不要将您的答案放在问题中——将其作为答案发布并接受。

标签: angular typescript import pouchdb


【解决方案1】:

我遇到了同样的问题。但我通过将 PouchDb cdn 添加到我的 index.html 页面来解决它

<script src="//cdn.jsdelivr.net/pouchdb/6.4.3/pouchdb.min.js"></script>

然后在我这样在我的代码中使用它之后

declare const  PouchDB;

const _DB_ = new PouchDB('dbname');

【讨论】:

    【解决方案2】:

    tsconfig.jsoncompilerOptions 部分添加 "allowSyntheticDefaultImports": true

    并使用

    import PouchDB from 'pouchdb';
    

    【讨论】:

      猜你喜欢
      • 2018-10-27
      • 1970-01-01
      • 2017-12-28
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多