Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我们是否可以在不使用require或module.exports的情况下跨js文件共享全局变量?_Javascript_Node.js_Gulp_Global Variables - Fatal编程技术网

Javascript 我们是否可以在不使用require或module.exports的情况下跨js文件共享全局变量?

Javascript 我们是否可以在不使用require或module.exports的情况下跨js文件共享全局变量?,javascript,node.js,gulp,global-variables,Javascript,Node.js,Gulp,Global Variables,我尝试在js文件和gulp任务中共享我的全局变量,而不使用module.exports和require 以下是示例代码: 文件1: server.js var server = new Hapi.Server() global.configurationManagerObj = 'Dev' 文件2: siteconfig.js console.log("This is global variable from server file",global.configurationManager

我尝试在js文件和gulp任务中共享我的全局变量,而不使用module.exports和require

以下是示例代码:

文件1:

server.js

var server = new Hapi.Server()
  global.configurationManagerObj = 'Dev'
文件2:

siteconfig.js

console.log("This is global variable from server file",global.configurationManagerObj)
文件3:

gulpfile.js

gulp.task('setenv', function(done) {
    console.log("Global variable is shared in gulp task", global.configurationManagerObj);
    done();
});

但是如果我试图获取变量,它会显示为未定义。

您可以在全局
进程
对象上分配变量,并且可以在任何地方访问它


这可能会有帮助。env变量仅在Nodejs进程中可用。如果节点未运行,您将不会拥有该变量。并且您也无法在节点进程之外获取该变量。所以我认为你最好使用require
ps:完全是个人观点。

您是否尝试过使用环境变量存储全局变量
process.env
内置于nodejs中

例如process.env.FOO=“FOO”

您只能在节点进程运行时才能访问它,否则它只会将所有内容显示为
undefined


PS:请记住,这是一种反模式。此外,在
process.env
上指定属性将隐式地将值转换为字符串。

如何在不需要或导出的情况下引用文件应该有一个公共引用ti访问变量您必须在某个地方至少需要一次server.js。否则node怎么知道全局变量呢?谢谢Fazal。。当我像这样使用process.env.config='dev'时,它会工作,但如果我在gulp任务中使用它,它会显示未定义的原因?