簡體   English   中英

手動加載node.js模塊

[英]Load a node.js module manually

有誰知道如何使用節點的本機“模塊”模塊(!)從文件中手動加載模塊,以替代使用常規的require機制?

我知道這是一個奇怪的請求,但是我需要模塊(在該模塊中)全局聲明其變量,並在每次需要時將其包裝為新模塊,例如

var private;

module.exports = {
    setPrivate: function (value) {private = value} 
}

詳細地說,如果您在要求不同的地方兩次調用相同的路徑,則會得到相同的模塊。 我需要始終獲取一個新模塊,以便在兩次調用setPrivate時僅能影響其自身的變量;

基本上,我需要弄清楚require()在首次調用模塊時用於創建和返回模塊的機制。 已經直接實例化了Module(例如https://github.com/joyent/node/blob/master/lib/module.js#L293 ),但是沒有運氣-Exports屬性始終是一個空對象。

請大家不要建議僅使用構造函數...感謝我有一個不尋常的用例。

您不需要做任何復雜的事情。

相反,您只需將其從緩存中刪除

delete require.cache[module.id];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM