Webpack生成以下UMD定义:
(function webpackUniversalModuleDefinition(root, factory) {
// this is CommonJS/Node
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
// this is AMD
else if(typeof define === 'function' && define.amd)
define([], factory);
// what is this environment or standard?
else if(typeof exports === 'object') <------------- ???
exports["rx-core-libs"] = factory();
// Window/Global
else
root["rx-core-libs"] = factory();
})
我的问题是这个标准或环境是什么?
else if(typeof exports === 'object')
它就像CommonJS但没有module
。
答案 0 :(得分:3)
根据this comment @sokra:
有两种不同的CommonJs规格。 CommonJS严格只有 出口,没有module.exports。 Node.js添加了module.exports但是那个 不属于原始规范的一部分。
This commonjs规范指出:
- 在一个模块中,有一个名为&#34; exports&#34;的自由变量,即 模块可以在执行时添加其API的对象。 模块必须 使用&#34; exports&#34; object作为唯一的导出方式。
这就是为什么webpack通过exports
对象导出依赖关系:
else if(typeof exports === 'object')
exports["rx-core-libs"] = factory()