我試圖創建一個用JavaScript + NodeJS編寫的IRC bot。該機器人應該能夠在運行時加載插件,並且應該能夠在更改後重新加載相同的插件等。運行時加載+覆蓋函數
什麼可行?
在運行時加載文件+執行其代碼。
怎麼回事?
如果仍然執行我的代碼再次加載相同的插件,但現在它發生兩次或第n次我加載插件。
當前代碼:
bot.match(/\.load/i, function(msg) {
require('./plugins/plug.js')(this);
});
module.exports = function(bot) {
bot.match(/\.ping/i, function(msg) {
msg.reply('pong');
});
那麼,有沒有什麼辦法來解決我的問題,使這項工作?
P.s.我使用IRC-JS作爲此機器人的基礎。
更新,固定:
即使更改該文件會被忽略,所以一定會像 緩存。
通過清除require.cache
還是這個? http://stackoverflow.com/questions/6676612/unloading-code-modules – meetamit
好的,非常感謝你的回答!我已經找到了,但是我錯過了一些東西來從'require.cache':完整路徑中刪除條目。正如例子'require.resolve'在這種情況下的幫助。但是仍然有一個問題:我的函數的輸出仍然出現第n次,這意味着函數仍然在內存中。任何想法? – sascha