2013-12-12 23 views
0

我正在閱讀在節點中使用requirejs的文檔。瞭解Nodejs使用requirejs

var requirejs = require('requirejs'); 

requirejs.config({ 
    //Pass the top-level main.js/index.js require 
    //function to requirejs so that node modules 
    //are loaded relative to the top-level JS file. 
    nodeRequire: require 
}); 

什麼這行代碼:「nodeRequire:需要」的意思,但我通過「傳遞頂級的js文件需要到requirejs」。下面是文檔的從require.js部分混淆? 我註釋掉這一行,並要求在節點上正確運行。

回答

1

在第一行中,您使用的是node.js的require()函數。

var requirejs = require('requirejs'); 

這意味着「真實」函數存儲在名爲「require」的變量中。您現在將此函數傳遞給requirejs。

requirejs.config({ 
    nodeRequire: require 
}); 

您目前位於您的頂級目錄中,例如/path/myproject。現在,如果您需要/path/myproject/lib/another.js內的某些內容,它將加載相對於/path/myproject而不是/path/myproject/lib/another.js的模塊。

試一下,需要一個子目錄內有和沒有nodeRequire: require的模塊。

+1

感謝法比奧,我試過在子目錄中需要模塊。它和你所說的完全一樣。順便說一句,如果你配置baseUrl和路徑,requirejs將遵循baseUrl和路徑配置。 –