为什么module.export设置多次?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么module.export设置多次?相关的知识,希望对你有一定的参考价值。

在此Webpacker configWebpacker setup中,有一个通用设置:

const envConfig = module.exports = environment

const aliasConfig = module.exports = ...

module.exports = merge(envConfig.toWebpackConfig(), aliasConfig)

多次设置module.exports有什么作用?

这仅是人们复制/粘贴+扭曲代码的结果,还是仅用于中间文件导出目的?

我想删除前两个分配,因为它们似乎没有用,但是我不确定Webpack / Webpacker是否有特定效果。

答案
module.exports只是告诉您应该从此文件中导出什么,以便在其他文件中重用。

如果我只是读了您共享的三行代码,则是],>

const envConfig = module.exports = environment

最左侧的“环境”已分配给“ module.exports”左侧的“ module.exports”到右侧的“ envConfig”

const aliasConfig = module.exports = ...

“ module.exports”现在分配了另一个对象,并且丢失了对第一个对象的引用。现在,“ aliasConfig”引用了“ ...”对象

module.exports = merge(envConfig.toWebpackConfig(), aliasConfig)

“ module.exports”被分配合并功能的结果(如果使用的是webpack-merge包,则此对象是两者的深度合并)。它丢失了对先前对象的引用。

不需要第一次声明module.exports。

Webpack配置与任何nodejs模块一样工作。这是有关module.exports https://nodejs.org/api/modules.html#modules_module_exports

文档的链接。

还请注意,由于提升在javascript中的工作方式,因此使用双重赋值语法可能被认为是危险的。如果我还记得,创建我们不希望那样的全局变量很容易。

以上是关于为什么module.export设置多次?的主要内容,如果未能解决你的问题,请参考以下文章

module.export 正在导出对象而不是存储在变量中的字符串

[ECMAScript] moduleexportimport分别有什么作用?

es6 module export 和 import写法注意点

import、module、export的作用

ES6 Module export与import复合使用

在后台堆栈中多次防止相同的片段