Javascript 如何在Node.js中执行IIFE脚本文件
我有一个非常具体的场景 我有一个名为Javascript 如何在Node.js中执行IIFE脚本文件,javascript,node.js,iife,Javascript,Node.js,Iife,我有一个非常具体的场景 我有一个名为ApplicationExtension.js的javascript文件,里面有一个iLife结构,如下所示: const ApplicationExtension = (function() { ... ... return { functionName : functionToExpose } })(); 我有另一个文件script.js,在其中,我想访问ApplicationExtension,以便执行A
ApplicationExtension.js
的javascript文件,里面有一个iLife结构,如下所示:
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
,因为它有很多依赖项,而且由于遗留原因,几乎不可能将所有内容都更改为基于模块的项目
您可以尝试使用FS读取它,并使用new function()将其转换为函数。您可以尝试使用FS读取它,并使用new function()将其转换为函数.使用模块.exports有什么问题?您有什么问题?从ApplicationExtension.js导出ApplicationExtension,就像导出exports.ApplicationExtension一样,而不是const ApplicationExtension。js@JaromandaX我不能,因为module.exports
无法在ApplicationExtension.js
需要的浏览器中工作成为executed@HubballiHuli这样做意味着我必须改变在其他脚本文件中使用ApplicationExtension
的方式。所有其他脚本文件都将其用作ApplicationExtension.functionName()
在浏览器中全局可用。使用模块导出有什么问题?您有什么问题?从ApplicationExtension.js导出ApplicationExtension,就像导出.ApplicationExtension一样,而不是const ApplicationExtension。js@JaromandaX我不能,因为module.exports
无法在ApplicationExtension.js
需要executed@HubballiHuli这样做意味着我必须改变在其他脚本文件中使用ApplicationExtension
的方式。所有其他脚本文件都将其用作ApplicationExtension.functionName()
,它在浏览器中全局可用,这是一种可能的解决方案。我必须删除常量ApplicationExtension
并将其提供给新函数()
,然后调用这些方法。如果没有别的办法,我会同意这一点,这是一个可能的解决办法。我必须删除常量ApplicationExtension
并将其提供给新函数()
,然后调用这些方法。如果没有别的办法,我就这么做