在 Linux 上,Node.js 代码热更新可以通过多种方式实现,以下是一些常见的方法:
PM2 是一个流行的 Node.js 进程管理器,支持热更新。以下是使用 PM2 进行热更新的步骤:
npm install pm2 -g pm2 start app.js --name my-app 当你修改了代码并保存后,可以使用以下命令进行热更新:
pm2 reload my-app PM2 会自动重启应用,而不会丢失当前的会话和连接。
Nodemon 是一个用于监视 Node.js 应用程序中的任何更改并自动重启服务器的工具。
npm install nodemon -g nodemon app.js Nodemon 会监视 app.js 文件的变化,并在检测到变化时自动重启服务器。
如果你使用 Webpack 进行前端构建,可以结合 HMR 实现热更新。
npm install webpack webpack-dev-server --save-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 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 则更适合前端开发。