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

问题描述:

在此tutorial笔者使用此代码举例出口代码:module.exports在webpack中的工作方式是否有所不同?

// sum.js

var sum = function (a, b) { 
    return a + b; 
}; 
module.exports = sum; 

但是这是否错了?我以为module.exports是一个对象,你想分配的sum给它的键和功能的value它类似于像这是什么其他article一样 -

// greetings.js

// var exports = module.exports = {};

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

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

。第一个作者搞砸了吗?

module.exports只是从require()返回的参考。您可以将其值设置为包含方法的object以及您可以将其值设置为函数或任何其他可分配的值。

+0

它的范围为每个文件的基础?这样每个文件中的'module.exports'作用于该文件,因为在文件a.js中将其值设置为“a”将不会在文件中将其值设置为“b” b.js? commonjs是否神奇地将所有这些键和值放入1个对象中供您从中要求? – stackjlei

+0

使用Webpack时,所有文件都使用IIFE模块捆绑成一个大文件。这可以通过闭包来防止模块之间的变量名称冲突。 –

+0

如果满意,请接受答案。 –