无法访问所需文件中的变量

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.