如何阻止 nodemon 在每次重新启动 express 应用程序时更改端口?

How to stop nodemon from changing port on each restart of express app?

我是 nodejs 的新手,这是我第一次使用 nodemon。我在 windows 上使用 nodejs。我的 package.json 文件

中有以下内容
"scripts": {
  "start": "nodemon ./bin/www"
}

我从命令行使用 npm start 来启动我的 express 应用程序。该过程从一个令人讨厌的默认端口开始。但更烦人的是,每次我更改文件时,nodemon 都会重新启动应用程序,有时会在一个完全不同的随机端口号上。我尝试将 package.json 文件中的 script 部分更改为以下内容,但这没有任何区别

"scripts": {
  "start": "nodemon ./bin/www 3000"
},

从评论来看,您似乎是通过环境变量指定端口,我们称之为 EXPRESS_PORT。当您使用 npm 启动它时,节点进程不会继承它,因为 npm start 会创建一个具有自己环境的新 shell。所以你最终通过端口 undefined 来表达。这使得它绑定到一个随机的自由端口。要解决此问题,您可以在启动命令中设置变量:

"scripts": {
    "start": "EXPRESS_PORT=3000 nodemon ./bin/www"
}

或者您可以使用 export EXPRESS_PORT=3000 然后 运行 npm start 从 shell 导出它。如果这样做,您需要确保在启动服务器之前始终导出,因此您可能希望将导出放在 ~/.profile~/.bashrc.