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
    并将其提供给
    新函数()
    ,然后调用这些方法。如果没有别的办法,我就这么做