2017-09-26 12 views
1

私はプロジェクトに取り組んでおり、最近PouchDBは作業を中止することに決めました。私はtsプロジェクトでもうコンパイルできません。私のプロジェクトでもうPouchDBをインポートできません

import * as PouchDB from 'pouchdb'; 

export default PouchDB.defaults({ 
    prefix: `http://admin:[email protected]:5984/` 
}) 

を私がしようとした場合、私は

server/src/database.ts(3,24): error TS2339: Property 'defaults' does not exist on type 'typeof 'pouchdb''. 

を取得:私が試した

import {PouchDB} from 'pouchdb'; 

export default PouchDB.defaults({ 
    prefix: `http://admin:[email protected]:5984/` 
} as any) 

私がしようとした場合、私は

server/src/database.ts(1,9): error TS2305: Module ''pouchdb'' has no exported member 'PouchDB'. 

を得る:

次に
import PouchDB from 'pouchdb'; 

export default PouchDB.defaults({ 
    prefix: `http://admin:[email protected]:5984/` 
} as any) 

それがコンパイルされますが、私はそれを実行したとき、私はこれを取得:

export default PouchDB.defaults({ 
        ^
TypeError: Cannot read property 'defaults' of undefined 
    at Object.<anonymous> ... 

私がしようとした場合:

const PouchDB = require('pouchdb'); 

それは私がOBV anyタイプになりますので、私は、すべての入力を失いますしたくないです

❯ npm ls pouchdb @types/pouchdb 
[email protected] /mnt/c/Users/Vincent/Documents/GitHub/compactd 
├── @types/[email protected] 
└── [email protected] 

私がそれが動作を停止する前に行った唯一のことは、node_modulesとreinstのクリーニングです私は何かをインストールするたびに、私のネイティブモジュールを再コンパイルしたいが、npmが同じことをやっているように感じる)

PouchDBを6.2.0にダウングレードしようとしたが、私はどんな助けも本当に高く評価されるだろう。 TS-ノードを使用して

、私は可能なあらゆる方法/インポートPouchDBを要求しようとした:今のよう

> require('pouchdb') 
{ [Function: PouchDB$5] 
    super_: 
    { [Function: AbstractPouchDB] 
    super_: 
     { [Function: EventEmitter] 
     EventEmitter: [Object], 
     usingDomains: true, 
     defaultMaxListeners: [Getter/Setter], 
     init: [Function], 
     listenerCount: [Function] } }, 
    adapters:... 

> import PouchDB from 'pouchdb' 
undefined 
> PouchDB 
undefined 

> import * as PouchDB from 'pouchdb' 
[eval].ts:2 
Object.defineProperty(exports, "__esModule", { value: true }); 
        ^

ReferenceError: exports is not defined 
    at [eval].ts:2:23 
    at ContextifyScript.Script.runInContext (vm.js:53:29) 
    at ContextifyScript.Script.runInNewContext (vm.js:59:15) 
    at _eval (/home/vincent/.nvm/versions/node/v8.5.0/lib/node_modules/ts-node/dist/_bin.js:181:29) 
    at REPLServer.replEval (/home/vincent/.nvm/versions/node/v8.5.0/lib/node_modules/ts-node/dist/_bin.js:220:18) 
    at bound (domain.js:301:14) 
    at REPLServer.runBound [as eval] (domain.js:314:12) 
    at REPLServer.onLine (repl.js:440:10) 
    at emitOne (events.js:115:13) 
    at REPLServer.emit (events.js:210:7) 

> import {PouchDB} from 'pouchdb' 
Thrown: ⨯ Unable to compile TypeScript 
[eval].ts (1,9): Module ''pouchdb'' has no exported member 'PouchDB'. (2305) 
+0

私の推測では、node_modulesフォルダに古いバージョンのPouchDBがあり、そのインターフェースが変更されていると思います。おそらく、そのモジュールを 'node'または' ts-node'のREPLにインポート(または要求)してみてください。次に、PouchDBオブジェクトをログに記録し、そこで使用できるプロパティを確認できます。あなたの型定義が一致しない場合、問題を修正するつもりはありませんが、多分PouchDBと@ types/PouchDBのバージョンが見つかるのに役立ちます。 –

+0

@NathanWilsonたくさんのデバッグの後、私が望む定義が見つかりました6.0.5以降に存在する 'pouchdb/lib/index.es'にあります。もちろん、.esファイルを直接インポートすることはできません。入力は見つかりません。今すぐ6.0.4をインストールしようとしています... – Vinz243

+0

Nvm、まだ6.0.4で動作しません... – Vinz243

答えて

0

を、最良の修正は次のとおりです。

import Pouch from 'pouchdb'; 
const PouchDB: typeof Pouch = require('pouchdb'); 

これは、迅速かつ汚いですが、実際の修正はpouchDBのメンテナーが行う必要があります

関連する問題