我正在项目中使用browserify并且正在运行以下内容:
我有一个文件test.js.在test.js中除了以下内容之外什么都没有:
var test = 'test';
现在,在同一目录中我有我的主文件' app.js'。我需要test.js并尝试访问'测试'像这样:
var testing = require(./test.js);
alert(test);
此操作失败,控制台返回'测试未定义'。
现在,我确实试过把它放在' test.js'代替:
module.exports = {
test: 'test'
}
和in app.js:
var testing = require(./test.js);
alert(testing.test);
这确实有效,但它不是我想要的。我不想要在对象中定义每个变量,函数等。我希望在app.js中的代码之前通过gulp写入整个test.js代码文件,好像它是服务器包含或者好像两个文件都在' head' element和test.js首先写成。
这种行为甚至可能吗?
答案 0 :(得分:1)
没有自定义逻辑,就无法达到你想要的效果。但是我相信你可以通过使用ES6 modules而不是CommonJS模块找到妥协。
你可以写
export var test = 'test';
声明并导出变量test
。然后,您可以使用
import {test} from './test';
由于您使用的是browserify,因此将ES6模块插入CommonJS转换器非常简单。例如。你可以使用Babel。