1. ホーム
  2. javascript

[解決済み] Node.jsでファイルを自動で再読み込みするには?

2022-03-18 07:25:24

質問

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

var sys     = require('sys'), 
    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' が定義されていないと言っています。 process.compile app.js が、node.js のグローバルについて全く理解していない。

どのように解決するのですか?

に代わる最新の良い方法です。 supervisor nodemon :

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

使用方法 nodemon を使用しないバージョンのNodeでは npx (v8.1以下は推奨しません)。

$ npm install nodemon -g
$ nodemon app.js

または nodemon を持つNodeのバージョンで npx をバンドルしています(v8.2以上)。

$ npm install nodemon
$ npx nodemon app.js

または、package.json に npm スクリプトを記述して devDependency とする。

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