Web*_*man 7 javascript export ecmascript-6
我在这个网站上看到了一个解释:
_interopRequireDefault():按原样使用ES6 CommonJS模块(如果它具有默认导出,则它具有名为default的属性).普通的CommonJS模块成为属性默认值.换句话说,在后一种情况下,模块的导出成为默认导出.
在代码中,通常有几个_interopRequireDefault写入.
所以如果我理解得很好,因为默认导出是一堆键/值,整个文件导出为一个总实体,_interopRequireDefault允许选择哪些模块将输入默认导出的特定代码呢?
Nis*_*ant 12
允许代码使用为nodejs和ES6编写的模块.
方法模块在ES6和CJS(Common JS规范)中的工作导出之间存在差异.
Common JS中的模块:
module.exports = function () {};
Run Code Online (Sandbox Code Playgroud)
ES6中的模块:
export default function () {}
Run Code Online (Sandbox Code Playgroud)
_interopRequireDefault有一个相当简单的逻辑:
function _interopRequireDefault(module) {
const
isCJSModule = module && module.__esModule,
cjsStyedModule = { default: module };
return isCJSModule ? module: cjsStyedModule;
}
Run Code Online (Sandbox Code Playgroud)
CJS在ES6之前就存在了.Node仍然使用CJS版本和最初为nodejs编写的所有模块.
虽然nodejs现在通过实验支持ES6模块,但如果使用--experimental标志和名称模块文件作为.mjs运行.
| 归档时间: |
|
| 查看次数: |
5170 次 |
| 最近记录: |