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