Node.js でファイルを自動リロードするにはどうすればいいですか? 質問する

Node.js でファイルを自動リロードするにはどうすればいいですか? 質問する

Node.js でファイルの自動リロードを実装する方法について何かアイデアはありますか? ファイルを変更するたびにサーバーを再起動するのは面倒です。どうやら Node.js のrequire()関数は、すでに要求されているファイルはリロードしないようですので、次のようにする必要があります。

var http    = require('http'),
    posix   = require('posix'),
    json    = require('./json');

var script_name = '/some/path/to/app.js';
this.app = require('./app').app;

process.watchFile(script_name, function(curr, prev){
    posix.cat(script_name).addCallback(function(content){
        process.compile( content, script_name );
    });
});

http.createServer(this.app).listen( 8080 );

app.jsファイルには次の内容が含まれています:

var file = require('./file');
this.app = function(req, res) { 
    file.serveFile( req, res, 'file.js');  
}

しかし、これも機能しません。ステートメントでprocess.compile()「require」が定義されていないというエラーが発生します。app.jsprocess.compile評価していますが、node.js のグローバルについてはわかりません。

ベストアンサー1

良い最新の代替品supervisornodemon:

Node.jsアプリケーションの変更を監視し、サーバーを自動的に再起動します。開発に最適です。

nodemonNode のバージョンなしで使用する場合npx(v8.1 以下は推奨されません):

$ npm install nodemon -g
$ nodemon app.js

または、バンドルされているnodemonNode のバージョンnpx(v8.2+) で使用するには:

$ npm install nodemon
$ npx nodemon app.js

または、package.json 内の npm スクリプトで devDependency として指定します。

"scripts": {
  "start": "nodemon app.js"
},
"devDependencies": {
  "nodemon": "..."
}

おすすめ記事