gpt4 book ai didi

node.js - 配置 Node 以将函数加载到全局范围?

转载 作者:搜寻专家 更新时间:2023-10-31 23:29:47 29 4
gpt4 key购买 nike

在更实际的日子里,我在某个地方看到我们可以配置 node-js 以在全局范围内执行加载的模块,但我现在找不到该怎么做。

我为什么要问?

我有一些遗留文件定义了我想在服务器和客户端上使用的语言实用程序,但是其中许多实用程序被定义为全局范围函数。例如,我有 closure(fClosure)module(fModule) 等函数,它们以可读的明确方式简单地组织您的代码,还有像 这样的实用程序$sb(arg,arg,arg),这是一个字符串构建器,依此类推。

现在这些实用程序被定义在一个像 core.js 这样的文件中,并且这个文件作为第一个依赖项被加载到浏览器中,生活是美好的。

但是,在根目录中要求此文件有助于扩展 Array.prototype 的地方,但其中定义的函数在其他模块中不可见。(并且请避免与其他库污染或冲突的讨论)

我知道这不符合 CommonJS 规范...但现在我只是想利用这些遗留代码,而不用以 CommonJS 的方式重新组织所有代码。

我还发现了 RequireJS 和它提出的漂亮的 AMD 模型,但它只回答了如何在为 node.js 编写的浏览器代码上运行,而不是反之亦然。

分配给全局变量将不起作用,因为这意味着我必须重写所有遗留库。我正在寻找一种方法让它们在全局范围内运行并保留它们声明的所有内容,而无需重写它们。

那么,有没有办法让 Node 要求一个文件并在全局范围内运行它?

最佳答案

你可以为 global 对象分配一些东西,这对于 Node 来说就像 window 对于浏览器一样,例如:

test.js

global.my_var = require('./my_module');

require('./display_my_var');

我的模块

module.exports = "this is a string";

display_my_var.js

console.log(my_var); // this will work, as my_var is now global

关于node.js - 配置 Node 以将函数加载到全局范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8503599/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com