无法将 PouchDB 导入 Angular 5.2.0 应用程序
Posted
技术标签:
【中文标题】无法将 PouchDB 导入 Angular 5.2.0 应用程序【英文标题】:Can't import PouchDB into Angular 5.2.0 application 【发布时间】: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 的重新安装。
不要将您的答案放在问题中——将其作为答案发布并接受。
【参考方案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.json 的 compilerOptions
部分添加 "allowSyntheticDefaultImports": true
并使用
import PouchDB from 'pouchdb';
【讨论】:
以上是关于无法将 PouchDB 导入 Angular 5.2.0 应用程序的主要内容,如果未能解决你的问题,请参考以下文章