Nodejs 新手问个问题, 开发环境express 怎么立即 reload, 生效修改后的代码

Nodejs 新手问个问题, 开发环境express 怎么立即 reload, 生效修改后的代码

刚开始用 nodejs express, 发现改了 代码, 都需要重启 node app.js

非常麻烦.

怎么配置呢? 谢谢.

4 回复

当然可以!在开发 Node.js 和 Express 应用时,频繁地重启服务器来查看代码的修改确实会降低开发效率。为了实现自动重新加载(live reloading),我们可以使用一些工具,比如 nodemon 或者 concurrently 结合 nodemonnpm-watch

使用 nodemon

nodemon 是一个非常方便的工具,它可以在文件发生变化时自动重启你的应用。你可以通过 npm 安装 nodemon

npm install --save-dev nodemon

然后修改你的 package.json 文件中的 scripts 部分,以便使用 nodemon 启动应用:

{
  "name": "your-app",
  "version": "1.0.0",
  "main": "app.js",
  "scripts": {
    "start": "nodemon app.js"
  },
  "devDependencies": {
    "nodemon": "^2.0.7"
  }
}

这样,当你运行 npm start 时,nodemon 会自动检测到文件变化并重启服务器。

使用 concurrentlynodemon

如果你还需要同时运行其他命令(例如启动前端服务),你可以使用 concurrently

首先安装 concurrently

npm install --save-dev concurrently

然后更新 package.json 中的 scripts

{
  "name": "your-app",
  "version": "1.0.0",
  "main": "app.js",
  "scripts": {
    "start": "nodemon app.js",
    "dev": "concurrently \"npm run start\" \"npm run serve\"",
    "serve": "webpack-dev-server" // 假设你有一个 webpack 服务
  },
  "devDependencies": {
    "concurrently": "^6.2.1",
    "nodemon": "^2.0.7"
  }
}

现在你可以运行 npm run dev 来启动后端和前端服务,并且后端会在文件变化时自动重启。

使用 npm-watch

如果你更喜欢使用 npm 的原生功能,可以使用 npm-watch。首先安装 npm-watch

npm install --save-dev npm-watch

然后更新 package.json

{
  "name": "your-app",
  "version": "1.0.0",
  "main": "app.js",
  "scripts": {
    "start": "node app.js",
    "watch": "npm-watch"
  },
  "watch": {
    "ignoreTest": ["**/node_modules/**"],
    "atStartup": true,
    "restart": ["app.js"]
  },
  "devDependencies": {
    "npm-watch": "^0.8.0"
  }
}

现在你可以运行 npm run watch 来自动重启应用。

这些方法都可以帮助你在开发过程中自动重新加载代码,提高开发效率。希望这对你有帮助!


npm install supervisor -g 安装后你可能还有其他的问题, 那你顺便看看 http://cnodejs.org/topic/5232d712101e574521083e31

啊, 这么麻烦啊, 不能像 rails 那样不需要 重启 server 吗?

在 Node.js 和 Express 开发环境中,每次修改代码后都需要重启应用来使更改生效确实会带来不便。不过,可以通过使用一些工具来自动重新加载应用,从而简化开发流程。

你可以使用 nodemon 这个工具来解决这个问题。nodemon 会在检测到文件变化时自动重启你的应用,而不需要手动停止并启动服务。

安装 nodemon

首先,你需要全局安装 nodemon

npm install -g nodemon

或者在项目中作为本地依赖安装:

npm install --save-dev nodemon

修改启动命令

接下来,你只需要将原来的启动命令(例如 node app.js)改为 nodemon app.js 即可。

如果你使用的是 package.json 文件中的脚本部分,可以这样修改:

{
  "scripts": {
    "start": "nodemon app.js"
  }
}

之后你可以通过运行 npm start 来启动应用,nodemon 将会在检测到文件变更时自动重启服务。

示例代码

假设你的 app.js 文件如下:

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

只需确保你使用 nodemon 启动它:

nodemon app.js
# 或者使用 npm 脚本
npm start

现在,每当你修改并保存 app.js 文件,服务器将会自动重启,并且你所做出的修改会立即生效。

回到顶部