首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: WooCommerceRestApi不是构造函数

TypeError: WooCommerceRestApi不是构造函数
EN

Stack Overflow用户
提问于 2020-06-08 02:50:20
回答 1查看 362关注 0票数 1

我成功地使用了NPM @woocommerce/woocommerce-rest-api来管理对Woocommerce/ WP网站的应用编程接口请求。

使用的是babel和CJS版本:

代码语言:javascript
复制
const WooCommerceRestApi = require("@woocommerce/woocommerce-rest-api").default;

const api = new WooCommerceRestApi({
  url: "http://example.com",
  consumerKey: "ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  consumerSecret: "cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  version: "wc/v3"
});

但是,由于节点14提供了一种使用ESM的简单方法,因此我将以下配置添加到package.json中,因此可以使用import语句:"type": "module"

因此,我应该能够使用以下格式:

代码语言:javascript
复制
import WooCommerceRestApi from "@woocommerce/woocommerce-rest-api";

const api = new WooCommerceRestApi({
  url: "http://example.com",
  consumerKey: "ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  consumerSecret: "cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  version: "wc/v3"
});

但是现在我得到了这个错误:

代码语言:javascript
复制
file:///xxxxxx/test.js:5
const api = new WooCommerceRestApi({
            ^

TypeError: WooCommerceRestApi is not a constructor
    at file:///xxxxxxxx/test.js:5:13
    at ModuleJob.run (internal/modules/esm/module_job.js:138:23)
    at async Loader.import (internal/modules/esm/loader.js:178:24)

为什么会这样呢?

EN

回答 1

Stack Overflow用户

发布于 2020-07-31 22:50:07

您可能已经解决了这个问题,但是我自己遇到了这个问题,在我看来,esm加载器默认使用的是cjs版本的库。

这对我很有效:

代码语言:javascript
复制
import pkg from '@woocommerce/woocommerce-rest-api';
const WooCommerceRestApi = pkg.default;

是的,这不是一个很好的解决方案,但它可能会对其他人有所帮助,或者激励某人进一步解释。;)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62250120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档