如何阻止 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
.
中
我是 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
.