小编典典

如何在 Node.js 中自动重新加载文件?

all

关于如何在 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()声明中收到一个错误,说“要求”没有定义。process.compile正在评估
app.js ,但对 node.js 全局变量一无所知。


阅读 178

收藏
2022-03-11

共1个答案

小编典典

一个好的,最新的替代方法supervisornodemon

监视 node.js 应用程序中的任何更改并自动重新启动服务器 - 非常适合开发

nodemon与没有节点的版本一起使用npx(v8.1 及以下,不建议):

$ npm install nodemon -g
$ nodemon app.js

或者与捆绑在 (v8.2+)nodemon中的 Node 版本一起使用:npx

$ npm install nodemon
$ npx nodemon app.js

或者使用 package.json 中的 npm 脚本作为 devDependency:

"scripts": {
  "start": "nodemon app.js"
},
"devDependencies": {
  "nodemon": "..."
}
2022-03-11