Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript UMD定义中的“if(typeof exports===&';object';)”需要什么环境_Javascript_Webpack_Amd_Commonjs_Umd - Fatal编程技术网

Javascript UMD定义中的“if(typeof exports===&';object';)”需要什么环境

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

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();
})
根据@sokra的说法,它类似于CommonJS,但没有
模块

有两种不同的CommonJs规范。CommonJS strict只有 导出和无模块导出。Node.js添加了module.exports,但这是 不是原始规范的一部分

规范规定:

  • 在模块中,有一个名为“exports”的自由变量,即 对象,模块可以在执行时将其API添加到该对象中模块必须 使用“导出”对象作为导出的唯一方式
这就是webpack通过导出对象导出依赖项的原因:

else if(typeof exports === 'object')
    exports["rx-core-libs"] = factory()
else if(typeof exports === 'object')
    exports["rx-core-libs"] = factory()