1
我使用browserify上一个项目,我在下面的运行:无法访问所需文件变量
我有一个文件test.js.在test.js中只有以下内容:
var test = 'test';
现在,在同一个目录中我有我的主文件'app.js'。我需要test.js并尝试访问'测试',如下所示:
var testing = require(./test.js);
alert(test);
失败并且控制台返回'test is undefined'。现在
,我也尝试把这个在 'test.js',而不是:
module.exports = {
test: 'test'
}
和在app.js:
var testing = require(./test.js);
alert(testing.test);
这的工作,但它不是什么我想要。我不想在一个对象中定义每个变量,函数等。我希望test.js代码的整个文件能够在app.js中的代码之前通过gulp写入,就好像它是一个服务器包含或者好像这两个文件都在'head'元素中,并且test.js写入了第一。
这种行为甚至可能吗?
*“这种行为甚至可能吗?”*它可能带有一些自定义预处理脚本,但这会让您的代码难以维护。例如。在每个包含'test.js'的文件中,你都必须记住哪个变量是在该文件中声明的,这样你就不会意外地覆盖它们。你基本上想要全局变量,但是为什么要避免使用全局变量是有原因的。如果你只是想“自动导出”所有已定义的变量,那是不可能的。也许你应该看看ES6模块的定义,它可以让你编写'export var test ='test';'。 –
但是,这就是CommonJS模块应该如何工作......尽管(不好的做法),你可以使用全局变量。 Google - > Node.js全局变量 – reg4in