Javascript 我们是否可以在不使用require或module.exports的情况下跨js文件共享全局变量?
我尝试在js文件和gulp任务中共享我的全局变量,而不使用module.exports和require 以下是示例代码: 文件1: server.jsJavascript 我们是否可以在不使用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
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任务中使用它,它会显示未定义的原因?