我有时候看到有的包module.exports的对象导出为false 是什么意思?

我有时候看到有的包module.exports的对象导出为false:

module.exports = false

请问这是什么意思?

阅读 1.6k
1 个回答

似乎在webpack的代码中看到过
image.png

webpack中的module并不是commonJs中的module,而是自己定义的对象,它有个关键的__webpack_require__方法。
image.png

在这个方法中会去初始化module结构

{
    exports: {},
    id: moduleId,
    loaded: false
}

初始化完这个对象后,会将模块缓存起来,并执行这个模块的代码。

modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);

这个方法最后返回的即是module.exports

那么流程下来就是, modules[39]这个模块为false, 调用__webpack_require(39)拿到的就是false;
至于这个模块是如何使用的,源码中主要是用来当作变量直接进行判断,具体逻辑没有深究。

var LIBRARY = __webpack_require__(39);

if (!LIBRARY) { ... }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏