Javascript module.exports在webpack中的工作方式是否不同?

Javascript module.exports在webpack中的工作方式是否不同?,javascript,webpack,require,commonjs,Javascript,Webpack,Require,Commonjs,在本文中,作者使用此代码举例说明导出代码: //sum.js var sum = function (a, b) { return a + b; }; module.exports = sum; 但这不是错吗?我认为模块.exports是一个对象,您应该将sum的键分配给它,并将函数的值分配给它,类似于另一个的操作- //问候你 //var exports=module.exports={} exports.sayHelloInEnglish = function() { retu

在本文中,作者使用此代码举例说明导出代码:

//sum.js

var sum = function (a, b) {
    return a + b;
};
module.exports = sum;
但这不是错吗?我认为
模块.exports
是一个对象,您应该将
sum
的键分配给它,并将函数的
值分配给它,类似于另一个的操作-

//问候你

//var exports=module.exports={}

exports.sayHelloInEnglish = function() {
  return "HELLO";
};

exports.sayHelloInSpanish = function() {
  return "Hola";
};

。第一作者搞砸了吗?

模块。导出只不过是从
require()
返回内容的参考。您可以将其值设置为包含方法的
对象,也可以将其值设置为函数或任何其他可分配值。

模块。exports
只是从
require()
返回内容的参考。您可以将其值设置为包含方法的
对象
,也可以将其值设置为函数或任何其他可赋值。

并且它的范围是基于每个文件的?这样每个文件中的
module.exports
的作用域就是该文件,即在文件a.js中将其值设置为
'a'
不会影响在文件b.js中将其值设置为
'b'
?commonjs是否只是神奇地将所有这些键和值放入一个对象中供您使用?使用Webpack时,所有文件都使用IIFE模块绑定到一个大文件中。它通过闭包来防止模块之间的变量名冲突。我仍然很困惑-是
module.exports
一个全局对象,还是它的作用域为使用它的每个文件?它的作用域为每个文件?这样每个文件中的
module.exports
的作用域就是该文件,即在文件a.js中将其值设置为
'a'
不会影响在文件b.js中将其值设置为
'b'
?commonjs是否只是神奇地将所有这些键和值放入一个对象中供您使用?使用Webpack时,所有文件都使用IIFE模块绑定到一个大文件中。它通过闭包来防止模块之间的变量名冲突。我仍然很困惑-是
module.exports
全局对象,还是它的作用域是使用它的每个文件?