タイムスタンプに基づいて node.js の外部 js ファイルをホットリロードすることは可能ですか?
ここからの初回ロード後にnode.jsキャッシュモジュールを知っています:http://nodejs.org/docs/latest/api/modules.html#modules_caching
モジュールは、最初にロードされた後にキャッシュされます。これは、require('foo') を呼び出すたびに、同じファイルに解決される場合、まったく同じオブジェクトが返されることを (とりわけ) 意味します。
また、リロードする必要があるかどうかもわかっています。次のようにできます。
// first time load
var foo = require('./foo');
foo.bar()
...
// in case need to reload
delete require.cache[require;.resolve('./foo')]
foo = require('./foo')
foo.bar();
しかし、ファイルを監視し、変更があった場合に再ロードするという node.js のネイティブ サポートがあるかどうかは疑問です。それとも自分でやる必要がありますか?
擬似コードのような
// during reload
if (timestamp for last loaded < file modified time)
reload the file as above and return
else
return cached required file
PS私はスーパーバイザーとノードモンを認識しており、特定のモジュールをリロードするためにサーバーを再起動したくありません。