Javascript Node.js';要求';在不需要名称空间的情况下复制其他文件

Javascript Node.js';要求';在不需要名称空间的情况下复制其他文件,javascript,node.js,namespaces,npm,Javascript,Node.js,Namespaces,Npm,我正在将代码库从100%的浏览器端切换到浏览器端和服务器端的混合 我发现的问题是,要让代码使用node.js运行,我必须使用模块。为了使我的代码成为模块,需要对几乎所有的代码进行巨大的重构。原因是在浏览器上,许多函数跨文件使用,而不必担心任何名称空间 但目前,在node.js中,我还没有找到实现同样效果的方法,而且我找到的所有解决方案都不起作用 例如,我希望能够做到以下几点: //////////// // file1.js //////////// function someFunction

我正在将代码库从100%的浏览器端切换到浏览器端和服务器端的混合

我发现的问题是,要让代码使用node.js运行,我必须使用模块。为了使我的代码成为模块,需要对几乎所有的代码进行巨大的重构。原因是在浏览器上,许多函数跨文件使用,而不必担心任何名称空间

但目前,在node.js中,我还没有找到实现同样效果的方法,而且我找到的所有解决方案都不起作用

例如,我希望能够做到以下几点:

////////////
// file1.js
////////////

function someFunction(someArgs) {
    /* run some stuff, calculate some stuff */

    return something;
}

////////////
// file2.js
////////////

function someFunction2(someArgs) {
    /* run some code */

    let someValue = someFunction(someArgs);

    /* run some more code */
}

////////////
// file3.js
////////////

someFunction2(myArguments);

我尝试了以下找到的解决方案,但它们对我没有帮助


“masylum”的回答不符合我的需要


“Udo G”的回答是指使用eval将另一个文件包含在运行文件中,会引发以下错误:

console.log(isWhitelisted("test"));
            ^

ReferenceError: isWhitelisted is not defined
    at Object.<anonymous> (/Users/< snip >/server.js:45:13)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:139:18)
    at node.js:999:3
console.log(isWhitelisted(“test”);
^
ReferenceError:未定义IsWhiteList
反对。(/Users//server.js:45:13)
在模块处编译(Module.js:413:34)
在Object.Module._extensions..js(Module.js:422:10)
在Module.load(Module.js:357:32)
在Function.Module.\u加载(Module.js:314:12)
位于Function.Module.runMain(Module.js:447:10)
启动时(node.js:139:18)
在node.js:999:3
虽然Udo G在使用严格模式时指出了这一点:

还请注意,这将不适用于“严格使用”


“尼克·帕诺夫”的回答对我也不起作用,抛出了与Udo G的回答相同的错误。这也可能是因为使用严格



有没有什么方法可以在不重构整个代码库以坚持使用模块的情况下实现这一点?

尝试使用构建步骤来实现这一点。简单的文件目录将帮助您。例如,看看

以下是与gulp相关的文档-

所有这些答案都应该起作用。你说没有,但你没有显示任何代码。。你期待什么?:)