我正在尝试使用带有Typescript的pouchdb。我无法链接到pouchdb模块。
import { PouchDB } from "pouchdb"
报告它找不到模块pouchdb,即使它在node_modules中。
我也找不到适合pouchdb的打字。
答案 0 :(得分:2)
我在Ionic中这样做,所以我可能错过了正确加载类型文件的步骤。
确保您的类型已安装:
npm install --save-dev @types/pouchdb
在数据服务导入包的顶部,如下所示:
import * as PouchDB from 'pouchdb';
*编辑*
我没有所有的事实,但这是我目前的理解。 在Typescript> 2.0中不再需要输入 我相信typescript现在可以自动使用从DefinitelyTyped安装的类型文件。 DefinitelyTyped是一个官方的中央存储库,它像npm一样保持最新状态。 即使我对这一切都是错误的,DefinitelyTyped仍然比打字更好,并且拥有更大的社区。 p>
答案 1 :(得分:2)
因为我刚遇到这个问题,对于Angular 2 + Typescript,使用PouchDB(使用angular-cli)的正确方法是:
ng new SOMENAME
npm install --save pouchdb
npm install --save-dev @types/pouchdb
import PouchDB from 'pouchdb';
public db: any;
和初始this.db = new PouchDB('test'); // , {storage:'persistent'} not working in typescript without updating typings
请参阅https://github.com/nolanlawson/pouchdb-find/issues/201。
如果在使用EPERM错误的窗口上安装软件包时遇到问题,请使用(f.e.)npm install --save pouchdb --no-optional
来禁用警告。安装应该还可以。有关详细信息,请参阅https://github.com/npm/npm/issues/17671
答案 2 :(得分:1)
尝试导入Angular 6时遇到了同样的问题。
您的进口货似乎不错:
import PouchDB from 'pouchdb';
import PouchFind from 'pouchdb-find';
PouchDB.plugin(PouchFind);
您可能缺少的是将其添加到我的polyfills.ts
文件中:
(window as any).global = window;
(window as any).process = {};
(window as any).process.nextTick = setTimeout;
答案 3 :(得分:0)
我设法通过使用
来识别模块declare function require(a)
var PouchDB = require("pouchdb")
我放弃了类型检查,但至少我可以取得进展。
答案 4 :(得分:0)