关于如何在 Node.js 中实现文件自动重新加载的任何想法?每次更改文件时我都厌倦了重新启动服务器。显然 Node.js 的require()功能不会重新加载已经需要的文件,所以我需要做这样的事情:
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 全局变量一无所知。
process.compile()
process.compile
一个好的,最新的替代方法supervisor是 nodemon :
supervisor
nodemon
监视 node.js 应用程序中的任何更改并自动重新启动服务器 - 非常适合开发
nodemon与没有节点的版本一起使用npx(v8.1 及以下,不建议):
npx
$ 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": "..." }