我需要在端口上运行我的 ReactJS 应用程序,1234但是当我运行时yarn dev,我得到以下信息:
\n\n\n$ 包裹 src/index.html --端口 1234
\n\n服务器运行在http://localhost:2493- 无法使用配置的端口 1234。
\n\n\xe2\x88\x9a 内置 11.45s。
\n
它没有告诉我为什么它不能在 port 上运行1234,所以我怀疑该端口可能已经在使用中。根据这个答案,下面应该告诉我哪个进程正在使用该端口。
Get-Process -Id (Get-NetTCPConnection -LocalPort portNumber).OwningProcess\nRun Code Online (Sandbox Code Playgroud)\n\n但这并没有帮助,它给出了以下消息:
\n\n\n\n\nGet-NetTCPConnection:未找到属性“LocalPort”等于“1234”的 MSFT_NetTCPConnection 对象。验证该属性的值并重试。
\n
我猜这意味着没有进程绑定到端口1234。但如果是这样的话,为什么我不能绑定到该端口?
我的package.json的如下:
{\n "name": "bejebeje.react",\n "version": "1.0.0",\n "description": "bejebeje\'s react-js frontend",\n "main": "index.js",\n "repository": "git@github.com:JwanKhalaf/Bejebeje.React.git",\n "author": "John",\n "license": "GPL-3.0",\n "dependencies": {\n "@fortawesome/fontawesome-svg-core": "^1.2.19",\n "@fortawesome/free-brands-svg-icons": "^5.9.0",\n "@fortawesome/free-solid-svg-icons": "^5.9.0",\n "@fortawesome/pro-light-svg-icons": "^5.9.0",\n "@fortawesome/pro-regular-svg-icons": "^5.9.0",\n "@fortawesome/pro-solid-svg-icons": "^5.9.0",\n "@fortawesome/react-fontawesome": "^0.1.4",\n "@reach/router": "^1.2.1",\n "oidc-client": "^1.8.2",\n "react": ">=16",\n "react-dom": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0",\n "react-icons": "^3.7.0",\n "styled-components": "^4.3.2"\n },\n "scripts": {\n "dev": "parcel src/index.html --port 1234",\n "build": "parcel build src/index.html"\n },\n "devDependencies": {\n "@fortawesome/fontawesome-pro": "^5.9.0",\n "axios": "^0.19.0",\n "parcel-bundler": "^1.12.3",\n "prettier": "^1.16.4",\n "sass": "^1.22.5"\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
创建一个尝试绑定到端口的小型 C# Web 服务器后,1234我仍然无法让它工作。它会尝试绑定,但会抛出异常:
尝试以访问权限禁止的方式访问套接字。
无论如何,经过大量的痛苦和研究,这里终于奏效了:
首先,禁用 hyper-v(这将重新启动您的电脑,因此请确保保存所有工作)。在 PowerShell 中(以管理员身份)运行以下命令:
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
Run Code Online (Sandbox Code Playgroud)
当你的电脑重新启动后,你需要保留你想要的端口,这样 hyper-v 就不会保留它,再次通过 PowerShell 以管理员身份运行以下命令:
netsh int ipv4 add excludedportrange protocol=tcp startport=50051 numberofports=1
Run Code Online (Sandbox Code Playgroud)
现在最终重新启用 hyper-V(PC 将再次重新启动),再次以管理员身份通过 PowerShell:
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
Run Code Online (Sandbox Code Playgroud)
当您的电脑完成并备份后,您应该能够成功绑定到该端口。
| 归档时间: |
|
| 查看次数: |
9835 次 |
| 最近记录: |