Javascript UMD定义中的“if(typeof exports===&';object';)”需要什么环境
Webpack生成以下UMD定义:Javascript UMD定义中的“if(typeof exports===&';object';)”需要什么环境,javascript,webpack,amd,commonjs,umd,Javascript,Webpack,Amd,Commonjs,Umd,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(ty
(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();
})
根据@sokra的说法,它类似于CommonJS,但没有模块
:
有两种不同的CommonJs规范。CommonJS strict只有
导出和无模块导出。Node.js添加了module.exports,但这是
不是原始规范的一部分
规范规定:
- 在模块中,有一个名为“exports”的自由变量,即 对象,模块可以在执行时将其API添加到该对象中模块必须 使用“导出”对象作为导出的唯一方式李>
else if(typeof exports === 'object')
exports["rx-core-libs"] = factory()
else if(typeof exports === 'object')
exports["rx-core-libs"] = factory()