【发布时间】:2020-02-13 05:26:11
【问题描述】:
我有一个非常具体的场景。
我有一个名为 ApplicationExtension.js 的 javascript 文件,其中有一个 IIFE 结构:
const ApplicationExtension = (function() {
...
...
return {
functionName : functionToExpose
}
})();
我有另一个文件 script.js 在里面,我想访问 ApplicationExtension 以便我可以执行 ApplicationExtension.functionName()
我将在节点环境中运行script.js,在浏览器环境中执行ApplicationExtension.js。
我试过了,
const App = require('./js/extended/application_extension');
console.log(App)
正如预期的那样,它是一个{} 对象,因为ApplicationExtension 中没有export。
注意事项
-
ApplicationExtension.js当前正在浏览器中执行,script.js正在执行 Node.js。 - 我不能在
ApplicationExtension.js中使用export,因为它有很多依赖项,而且由于遗留原因,几乎不可能将所有内容更改为基于模块的项目。
【问题讨论】:
-
使用
module.exports有什么问题? -
你有什么问题?
-
从 ApplicationExtension.js 中导出 ApplicationExtension,例如 exports.ApplicationExtension 而不是 const ApplicationExtension.js
-
@JaromandaX 我不能,因为
module.exports在需要执行ApplicationExtension.js的浏览器中不起作用 -
@HubballiHuli 这样做意味着我将不得不改变
ApplicationExtension在其他脚本文件中的使用方式。所有其他脚本文件将其用作ApplicationExtension.functionName(),在浏览器中全局可用
标签: javascript node.js iife