在Node.js中重新加载文件?

编辑:使用http://github.com/isaacs/node-supervisor; 这是一个老问题,代码示例是使用过时的Node.js API制作的。

关于如何在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选择是nodemon

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

要使用nodemon

$ npm install nodemon -g
$ nodemon app.js

节点监督员真棒

用法重新开始保存:

npm install supervisor -g
supervisor app.js

通过isaacs - http://github.com/isaacs/node-supervisor


我找到了一个简单的方法:

delete require.cache['/home/shimin/test2.js']
链接地址: http://www.djcxy.com/p/32683.html

上一篇: reload files in Node.js?

下一篇: Make a script which accept command