重写 require to import 语句

rewrite require to import statement

我正在尝试使用具有原生 BigInt 支持的 https://www.npmjs.com/package/json-bigint。在 CommonJS 中我会这样做:

var JSONbigNative = require('json-bigint')({ useNativeBigInt: true });

等效于 ES6 的语法是什么?这不起作用:

import  * as JSONBigIntWrapper from 'json-bigint';
const JSONBigInt = JSONBigIntWrapper({useNativeBigInt: true});

因为它抱怨 JSONBigIntWrapper 不是函数。

重写重写导入的通用规则是什么?

对于 ES6 导入,导入 * 并不等同于 require() 所做的。

你要获取的是默认的模块导出,如下代码所示

import whatever_you_want_the_default_to_be_named, {} from 'json-bigint'

从模块导入默认导出时,您可以依靠使用 default 关键字。

import {default as _JBI} from 'json-bigint';
const JSONBigNative = _JBI({useNativeBigInt: true});

这也是使用 dynamic import syntax:

时有效的 only 语法
const {default: _JBI} = await import('json-bigint');
const JSONbigNative = _JBI({useNativeBigInt: true});