yon*_*oni 1 javascript node.js woocommerce woocommerce-rest-api
我成功地使用 NPM @woocommerce/woocommerce-rest-api来管理对 Woocommerce/WP 网站的 API 请求。
正在使用 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"
});
Run Code Online (Sandbox Code Playgroud)
但是由于 Node 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"
});
Run Code Online (Sandbox Code Playgroud)
但现在我收到这个错误:
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)
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
小智 6
您可能已经解决了这个问题,但我自己遇到了这个问题,在我看来,esm 加载器默认为库的 cjs 版本。
这对我有用:
import pkg from '@woocommerce/woocommerce-rest-api';
const WooCommerceRestApi = pkg.default;
Run Code Online (Sandbox Code Playgroud)
是的,这不是一个很好的解决方案,但它可能对其他人有帮助或启发某人进一步解释。;)
| 归档时间: |
|
| 查看次数: |
295 次 |
| 最近记录: |