栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用webpack返回空对象的圆形导入

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用webpack返回空对象的圆形导入

这不是webpack问题,而是CommonJS模块的属性。

首次需要CommonJS模块时,其

exports
属性将初始化为幕后的空对象。

module.exports = {};

然后,模块可以决定扩展此

exports
属性或覆盖它。

exports.namedExport = function() {  }; // extendsmodule.exports = { namedExport: function() {  } }; // overrides

因此,当

A
require
B
B
require
A
紧随其后时,
A
不会再次执行(这将产生无限循环),但是将
exports
返回其当前属性。由于在文件的最顶部是
A
必需的
B
,因此在导出任何内容之前,模块中的
require('A')
调用
B
将产生一个空对象。

循环依赖项的一个常见修复方法是, 导出其他模块所需的变量 之后 ,将导入内容放在文件的末尾。

A

module.exports = { foo: 'bar' };require('B'); // at this point A.exports is not empty anymore

B

var A = require('A');A.foo === 'bar';


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448595.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号