发布于2026-07-21 阅读(0)
扫一扫,手机访问
在 Linux 环境下,Node.js 代码热更新其实是个挺常见的需求——开发时改完代码不用手动重启,效率能提升不少。实现方式有好几种,下面挑几个主流的方法聊一聊。

PM2 算是 Node.js 生态里最流行的进程管理器之一,热更新功能相当成熟。操作起来也非常简单:
npm install pm2 -g
pm2 start app.js --name my-app
当代码修改并保存后,执行下面这条命令就能实现热更新,而且 PM2 会优雅地重启应用,不会中断当前的会话和连接:
pm2 reload my-app
值得一提的是,reload 和 restart 有区别——reload 会先启动新进程,等新进程就绪后再关闭旧进程,真正做到零停机。
Nodemon 是另一种很常见的工具,专为开发场景设计。它的核心逻辑就是监视文件变化,一旦检测到改动就自动重启服务器。
npm install nodemon -g
nodemon app.js
Nodemon 默认会监视当前目录下的所有文件,不过你也可以通过配置文件指定只监视哪些路径或忽略哪些文件。简单直接,适合快速原型开发。
如果你在前端项目里用 Webpack,那 HMR 是个更高级的玩法——它不需要整个页面刷新,而是只替换发生变化的模块,体验简直丝滑。
npm install webpack webpack-dev-server --sa ve-dev
在 webpack.config.js 中开启 HMR 支持:
const path = require('path');
const webpack = require('webpack');
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
devServer: {
contentBase: path.resolve(__dirname, 'dist'),
hot: true
},
plugins: [
new webpack.HotModuleReplacementPlugin()
]
};
webpack-dev-server --mode development
HMR 特别适合前端开发,但如果你在 Node.js 后端也要做类似的热替换,那可能需要结合 webpack-node-externals 等工具,相对复杂一些。
repl 模块Node.js 自带的 repl 模块虽然简单,但也能实现手动热更新。适合调试场景,或者你不想装任何第三方工具的时候。
node -i
在 REPL 中,你可以通过清除模块缓存来重新加载代码:
delete require.cache[require.resolve('./app.js')];
const app = require('./app.js');
这种方法比较原始,需要手动操作,而且如果模块之间存在循环依赖,可能会出问题。不过作为一种“应急方案”还是挺实用的。
以上几种方法各有侧重,选择哪一款主要看你的项目类型和开发习惯。PM2 和 Nodemon 覆盖了大部分后端 Node.js 应用的需求,操作简单、社区活跃,值得优先考虑。而 Webpack + HMR 更适合前端或全栈项目,追求极致开发体验。至于内置的 repl 模块,更适合临时调试或轻量级场景。没有绝对的最好,只有最适合你的。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8