如何使用 Angular-Cli/Webpack 导入 PouchDb-Find

How to import PouchDb-Find with Angular-Cli/Webpack

我想将 Angular 2/Typescript 与 PouchDb 和 PouchDb-Find 一起用于使用 Angular-cli 生成的项目(现在基于 webpack。)PouchDb 与一个简单的导入语句。

import * as PouchDB from 'pouchdb'

var commonDb = new PouchDB(this.commonDbUrl) ;
console.log("commonDb",commonDb) ;

// .getIndexes() is from pouchDb.find. I don't know what the import for it is
commonDb.getIndexes().then(function (result) {
    console.log("GetIndexes.Success",result) ;
}).catch(function (err) {
    console.log("GetIndexes.Failed",err) ;
});

新的 PouchDb 有效,commonDb.getIndexes 无效。我在 import * as pouchfind from 'pouchdb-find' 上尝试了很多变化都无济于事。

如何导入 PouchDb-Find 模块?

这应该有效:

import * as PouchDB from 'pouchdb'
import * as PouchFind from 'pouchdb-find'
PouchDB.plugin(PouchFind)

对于打字,据我所知,没有用于 pouchdb-find 的打字,因此您必须使用 any.

我怀疑我无法以预期的方式解决这个问题,因为 Angular-Cli 仍处于测试阶段,肯定存在一些问题。

我通过将 pouchdb.find.js 和 poucdb.js 放入 public/pouchdb 文件夹并从 index.html 中引用它们来解决问题,如下所示。我很清楚这是一个变通办法,需要变通办法。

<script src="pouchdb/pouchdb.js"></script>
<script src="pouchdb/pouchdb.find.js"></script>

<script>
    PouchDB('pouchdbfind') ;
</script>

我希望 Angular-cli 会很快成熟。

有点晚了,但我遇到了同样的麻烦,不会使用脚本 src 方式...

我正在将 nvm 与 nodejs 7.x 一起使用,并且不知道 nvm use xxx 在 Mac 重启后会丢失。

切换到 nodejs 7.1.0 后一切正常...

所以:注意你的 npm 版本

HTH

皮特

这对我有用。

安装 npm 包。

npm install --save pouchdb-browser
npm install --save pouchdb-find

并编写了这段代码

import PouchDB from 'pouchdb-browser';
import PouchDBFind from 'pouchdb-find';
PouchDB.plugin(PouchDBFind);

在 Angular 6 你应该添加到 polyfills.ts:

(window as any).global = window;
(window as any).process = {};
(window as any).process.nextTick = setTimeout;

然后要使用 PouchDB/PouchDB-find,您应该将以下行添加到 service/controller:

import PouchDB from 'pouchdb';
import PouchFind from 'pouchdb-find';
PouchDB.plugin(PouchFind);