【问题标题】:TypeError: pouchdb_1.default is not a constructorTypeError: pouchdb_1.default 不是构造函数
【发布时间】:2020-08-04 13:40:50
【问题描述】:

我之前在基于浏览器的项目中使用过 PouchDB,一切正常,但在新的节点项目中,无论我如何导入模块,都会出现此错误

Pouchdb 6.3.4 + @types/pouchdb

import PouchDB from 'pouchdb';
this.userDB = new PouchDB('db');
//TypeError: pouchdb_1.default is not a constructor

结果代码:

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const pouchdb_1 = require("pouchdb");
this.userDB = new pouchdb_1.default('db')

我尝试了所有可能的方式(import =、const =、import * as、import {})

答案(感谢 Mustansir Zia)

const PouchDB = require('pouchdb');

【问题讨论】:

  • 哇!很高兴能真正回答。 :)

标签: typescript pouchdb


【解决方案1】:

来自 PouchDB 的 npm

var PouchDB = require('pouchdb');
var db = new PouchDB('my_db');

让我们看看它是否可以使用 require。在这种情况下,Babel 不必将 .default 附加到它。

【讨论】:

  • 嗯!所以我把它改成了 const PouchDB = require('pouchdb');神奇地现在它起作用了。我很确定我之前尝试过,但是在访问 PouchDB 类型时遇到了问题(我在这里使用打字稿)谢谢 :)
  • 应该也可以。别客气!我更喜欢 JS 而不是 TS 的原因。 :)
【解决方案2】:

我在 devDependencies 部分的 package.json 中添加了 @types/pouchdb": "^6.3.2"

【讨论】:

    【解决方案3】:

    我的解决方案是安装打字:

    npm i -D @types/pouchdb
    

    并导入如下:

    import * as PouchDB from 'pouchdb';
    

    在一切按预期工作之后:

    this.db = new PouchDB('my_db');
    

    【讨论】:

      猜你喜欢
      • 2019-12-07
      • 1970-01-01
      • 2022-06-11
      • 2020-03-30
      • 2021-06-20
      • 1970-01-01
      • 2017-07-27
      • 2019-08-14
      相关资源
      最近更新 更多