commonjs 和 commonjs2

webpack 中我们会看到:

那么,有什么区别呢?

commonjs: exports['MyLibrary'] = entry_return
commonjs2: module.exports = entry_return

exports 是 module.exports 的引用,所以不建议改变这个引用关系,所以我们不能直接:
exports = _entry_return_

这样 exports 不再指向 module.exports,我们直接 require 是不会导入任何内容的

只能是这种:
exports.xxx = yyy 或者 exports['xxx'] = yyy

相当于通过对象导出,增加了一层命名空间

使用的时候:
const MyLibrary = require('xxx').MyLibrary
或者:
const { MyLibrary } = require('xxx')

但是 module.exports 可以直接暴露 MyLibrary, 不用再加一层 MyLibrary 命名:
const MyLibrary = require('xxx')

关注我,每天更新技术干货!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 系列文章导航 模块(二) es6 module typescript module 本文参考Javascript模...
    合肥黑阅读 8,918评论 0 14
  • 转载自:https://www.cnblogs.com/chenguangliang/p/5856701.html...
    小豆soybean阅读 730评论 0 2
  • 模块通常是指编程语言所提供的代码组织机制,利用此机制可将程序拆解为独立且通用的代码单元。所谓模块化主要是解决代码分...
    MapleLeafFall阅读 1,207评论 0 0
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,026评论 0 38
  • 在小镇的每一刻都十分慵懒,所有的事情都不再那么紧迫。 这样的时光更适合感受生活,选择自己喜欢的事情去做。 读一本书...
    浅观阅读 217评论 2 8