我成功地使用了NPM @woocommerce/woocommerce-rest-api来管理对Woocommerce/ WP网站的应用编程接口请求。
使用的是babel和CJS版本:
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"
因此,我应该能够使用以下格式:
import WooCommerceRestApi from "@woocommerce/woocommerce-rest-api";
const api = new WooCommerceRestApi({
url: "http://example.com",
consumerKey: "ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
consumerSecret: "cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
version: "wc/v3"
});但是现在我得到了这个错误:
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)为什么会这样呢?
发布于 2020-07-31 22:50:07
您可能已经解决了这个问题,但是我自己遇到了这个问题,在我看来,esm加载器默认使用的是cjs版本的库。
这对我很有效:
import pkg from '@woocommerce/woocommerce-rest-api';
const WooCommerceRestApi = pkg.default;是的,这不是一个很好的解决方案,但它可能会对其他人有所帮助,或者激励某人进一步解释。;)
https://stackoverflow.com/questions/62250120
复制相似问题