无法访问所需文件中的变量
Not able to access variables in required file
我正在一个项目上使用 browserify,并且 运行 参与以下内容:
我有一个文件test.js。在 test.js 中,只有以下内容:
var test = 'test';
现在,在同一个目录中我有我的主文件 'app.js'。我需要 test.js 并尝试像这样访问 'test':
var testing = require(./test.js);
alert(test);
这失败了,控制台 returns 'test is undefined'.
现在,我尝试将其放入 'test.js' 中:
module.exports = {
test: 'test'
}
和 app.js 中的:
var testing = require(./test.js);
alert(testing.test);
这确实有效,但不是我想要的。我不想在对象中定义每个变量、函数等。我希望 test.js 代码的整个文件由 gulp 在 app.js 中的代码之前写入,就好像它是服务器包含或者两个文件都在 'head'元素和test.js写在第一个。
这种行为可能吗?
没有自定义逻辑,就不可能实现你想要的。但是我相信您可以通过使用 ES6 modules 而不是 CommonJS 模块来找到折衷方案。
你会写
export var test = 'test';
声明并导出变量 test
。然后您可以使用
导入它
import {test} from './test';
由于您使用的是 browserify,因此将 ES6 模块插入 CommonJS 转换器非常简单。例如。你可以使用 Babel.
我正在一个项目上使用 browserify,并且 运行 参与以下内容:
我有一个文件test.js。在 test.js 中,只有以下内容:
var test = 'test';
现在,在同一个目录中我有我的主文件 'app.js'。我需要 test.js 并尝试像这样访问 'test':
var testing = require(./test.js);
alert(test);
这失败了,控制台 returns 'test is undefined'.
现在,我尝试将其放入 'test.js' 中:
module.exports = {
test: 'test'
}
和 app.js 中的:
var testing = require(./test.js);
alert(testing.test);
这确实有效,但不是我想要的。我不想在对象中定义每个变量、函数等。我希望 test.js 代码的整个文件由 gulp 在 app.js 中的代码之前写入,就好像它是服务器包含或者两个文件都在 'head'元素和test.js写在第一个。
这种行为可能吗?
没有自定义逻辑,就不可能实现你想要的。但是我相信您可以通过使用 ES6 modules 而不是 CommonJS 模块来找到折衷方案。
你会写
export var test = 'test';
声明并导出变量 test
。然后您可以使用
import {test} from './test';
由于您使用的是 browserify,因此将 ES6 模块插入 CommonJS 转换器非常简单。例如。你可以使用 Babel.