首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有两个运行react但在不同端口上的Visual Studio代码窗口

基础概念

React 是一个用于构建用户界面的 JavaScript 库,特别适合构建单页应用程序(SPA)。Visual Studio Code(VS Code)是一个流行的代码编辑器,支持多种编程语言和开发工具。

在不同的端口上运行两个 React 应用程序意味着每个应用程序都在其独立的服务器实例中运行,监听不同的网络端口。这通常用于开发和测试环境中,以便同时运行和比较多个版本的应用程序或不同的功能分支。

相关优势

  1. 并行开发:可以在不同的端口上运行和调试不同的功能或组件,提高开发效率。
  2. 隔离性:每个应用程序的更改不会影响另一个,便于单独测试和验证。
  3. 灵活性:可以根据需要快速启动或停止任意一个应用程序。

类型与应用场景

  • 开发环境:开发者可以在不同的端口上运行多个版本的代码,便于对比和调试。
  • 测试环境:自动化测试脚本可以针对不同端口的应用程序执行测试用例。
  • 演示和展示:在同一台机器上展示多个版本的应用程序给客户或团队成员。

遇到的问题及原因

常见问题

  • 端口冲突:如果两个应用程序试图使用相同的端口,会导致启动失败。
  • 跨域请求问题:如果一个应用需要访问另一个应用的 API,可能会因为同源策略而遇到跨域问题。

原因分析

  • 端口冲突:操作系统限制同一端口只能被一个进程监听。
  • 跨域问题:浏览器的安全策略限制了不同源之间的资源交互。

解决方案

端口冲突

确保每个 React 应用程序配置了不同的端口号。可以在 package.json 文件中的 scripts 部分修改启动命令,例如:

代码语言:txt
复制
// 第一个应用
"scripts": {
  "start": "react-scripts start --port 3000"
}

// 第二个应用
"scripts": {
  "start": "react-scripts start --port 3001"
}

跨域请求问题

可以通过设置代理来解决跨域问题。在 React 应用的 src 目录下创建 setupProxy.js 文件,并配置代理规则:

代码语言:txt
复制
const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(
    '/api',
    createProxyMiddleware({
      target: 'http://localhost:3001', // 目标服务器地址
      changeOrigin: true,
    })
  );
};

这样,当第一个应用向 /api 发起请求时,会被代理到第二个应用的服务器上。

示例代码

假设我们有两个简单的 React 应用程序,分别位于 app1app2 目录中。

app1/package.json:

代码语言:txt
复制
{
  "name": "app1",
  "version": "1.0.0",
  "scripts": {
    "start": "react-scripts start --port 3000"
  },
  ...
}

app2/package.json:

代码语言:txt
复制
{
  "name": "app2",
  "version": "1.0.0",
  "scripts": {
    "start": "react-scripts start --port 3001"
  },
  ...
}

app1/src/setupProxy.js 中配置代理:

代码语言:txt
复制
const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(
    '/api',
    createProxyMiddleware({
      target: 'http://localhost:3001',
      changeOrigin: true,
    })
  );
};

通过以上配置,两个应用可以在不同的端口上独立运行,并且第一个应用可以通过代理访问第二个应用的 API 资源。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住

同样的程序,在使用 Visual Studio 调试的时候和直接运行的时候相比,总会有一些细微之处是不同的。...大多数时候这些不同可以忽略,但是一旦这些不同是我们产品需求的一部分的时候,你可能就会发现调试和非调试状态下的行为不同却找不到原因,非常抓狂! 本文记录我遇到的一个 WPF 窗口调试的案例。...看完后大家至少知道 Visual Studio 调试时的一个小坑,更进一步则可以在出现奇妙问题的时候打开一个新的思路。...▲ 正常情况(能识别到窗口内的控件) ▲ 异常情况(只能识别到一整个窗口) Visual Studio 干了啥! 我用 snoop 查看了一下我软件界面里的控件,发现没有什么异常。...,所以我拿到主线程所有窗口的列表,找到当前窗口的下一个(因为假想 Visual Studio 总会在我们创建完一个窗口后立即创建覆盖窗口),然后把它关掉。

37020
  • 提高 JavaScript 开发效率的高级VSCode扩展!

    这意味着它会实时运行你输入后的代码,并在编辑器中显示各种执行结果,建议亲自尝试一下。...这是两个不同的扩展。然而,他们就像是一对情侣,可以完美的配合使用。这些扩展将为你的编辑器添加一系列颜色,并使代码块易于辨别,一旦你习惯了它们,如果 VSCode 没有它们就会让人觉得很平淡。...REST Client 它允许你发送 HTTP 请求并直接在 Visual Studio 代码中查看响应。 ?...Close HTML/XML tag GitLens 正如其作者所说,GitLens 增强了 Visual Studio Code 中内置的 Git 功能,它包含了许多强大的功能,例如通过跟踪代码显示的代码作者...Version Lens — 在Visual Studio代码编辑器中显示npm,jspm,bower,dub和dotnet核心的软件包版本信息。

    2.6K50

    VSCode的10个巧妙技巧

    即使没有让 Visual Studio Code 成为每个开发人员的强大工具的大量扩展,Microsoft 的开源编程编辑器默认情况下也加载了许多巧妙的功能。...右键单击主窗口中的选项卡,然后选择“移至新窗口”以分离选项卡。要重新附加它,请将选项卡拖回到原始窗口上的选项卡列表中。 可将标签分离并转换为独立窗口,并在桌面上自由移动。...类似地,VS Code 有自己的内部进程资源管理器,可让您查看在代码编辑器中运行的所有子进程的列表——每个窗口、扩展、外部生成的进程等。...将 VS Code 作为便携式应用程序运行 通常,您会像运行成熟的 Visual Studio 或 Microsoft Office 一样,将 Visual Studio Code 作为正式安装的应用程序运行...但在某些情况下,便携式运行 VS Code 会很有用——即从可移动驱动器或系统上的奇特目录运行,而无需正式安装它。

    15210

    Visual Studio 调试系列4 单步后退来检查旧应用状态(使用使用 IntelliTrace 窗口)

    Visual Studio 还将指针移动到源窗口中的相应代码行。 在此视图中,可以检查“调用堆栈”、“局部变量”、“自动”以及“监视”窗口中的值 。...还可以在变量上悬停鼠标,以在“即时”窗口上查看数据提示并进行表达式求值 。 看到的数据源于在该时间点拍摄的应用程序进程的快照。...因此,举例来说,如果命中断点并执行步骤 (F10),则“后退”按钮将在断点对应的代码行上将 Visual Studio 置于历史模式 。 ?...若要执行此操作,请选择带有快照的事件,然后单击“激活历史调试” 。 ? 与“设置下一语句”命令不同,查看快照不会重新运行代码;它提供在过去发生的某个时间点的应用程序状态的静态视图 。...03 IntelliTrace 后退功能与 IntelliTrace 仅事件模式有何不同 仅事件模式下的 IntelliTrace 允许在调试器步骤发生时和断点处激活历史调试。

    3K40

    Visual Studio 智能代码插件:CodeGeeX

    message完成git提交,以及在不同编程语言的代码间实现互译、针对技术和代码问题的智能问答等丰富的功能。...代码翻译 多种编程语言之间进行互译。理解代码语义并在保留原始代码语义和功能的基础上,翻译成另一种编程语言的等效代码。 生成单元测试 根据函数、方法的内容和运行逻辑,生成相关的单元测试代码。...插件安装方式 1.在Visual Studio 2022的扩展->管理扩展中搜索CodeGeeX。 2、在Visual Studio窗口顶部的"扩展"菜单中,点击下拉菜单中选择"管理扩展"。...: 使用方式 CodeGeex 在Visual Studio 中的使用方式,保持了它在Visual Studio Code 和 JetBrains IDEs 全家桶的使用方式,您可以无缝的拓展到不同IDE...3、侧边栏 侧边栏可以通过拖拽的方式变宽,或是同其他visual窗口一样进行停靠、锚定,或放在更习惯的左侧或右侧位置,确保在Visual Studio 上编程的丝滑体验。

    31910

    H5 手机 App 开发入门:技术篇

    然后,就可以查看代码运行结果。点击工具栏的运行按钮,Xcode 就会弹出一个 iPhone 模拟器,里面就是当前代码的运行结果。 ? ?...运行代码之前,Android Studio 要求必须连接真机,或安装安卓模拟器。完成以后后,在工具栏上点击运行按钮,就可以运行代码查看效果了。 ? ?...PhoneGap 和 Cordova 现在是两个独立发展的开源项目,但是彼此有密切的关系,可以简单理解成 Cordova 是 PhoneGap 的内核,PhoneGap 是 Cordova 的发行版。...$ npm run web 运行上面的命令,命令行会出现一个二维码。 ? 这时可以打开手机端的 Expo 客户端,扫描这个二维码,就会显示 App 的页面。注意,计算机和手机必须在同一个局域网。...它的使用需要 Visual Studio,这里就不举例了。根据官方文档,WebView 的用法如下。 ?

    6.9K41

    Visual Studio 2008 每日提示(三十七)

    于是你就可以通过这两个按钮快速导入你喜欢的环境设置。...//www.watch-life.net/visual-studio/visual-studio-2008-tip-day-37.html 评论:如果你在开发过程中修改了有关环境设置,通过这个方法你可以很迅速的还原到自己喜欢的...,或者通过搜索,或者索引打开帮助,你会发现帮助的内容窗口和帮助的目录树并不同步 如果想同步的话,你可以在帮助文档窗口上单击“与目录同步”的按钮 如果你发现这个同步按钮不可用的时候,是因为,帮助文档选择的是在线文档...# 379、在Visual Studio里直接安装代码示例 原文链接:You can go directly to the installed code samples from within Visual...# 380、在Visual Studio里的打开源的命令 原文链接:There is an Open Source command in Visual Studio 操作步骤: 在文档窗口,如果你进行一个搜索

    1.4K60

    屏幕上那个灰色带有数字的框是什么?看着好难受!

    我们发现,当我们将那个瞄准靶心指向灰色小窗口上时,这个窗口的句柄和其他信息已经显示。 ? 于是,点击“确定”来查看这个窗口的信息。 ?...▲ 居然是 Visual Studio 的某个名为 CandidateWindow 的子窗口 猜测和搜索 现在我们得到了这些线索: 这是 Visual Studio 的窗口 这个窗口的类名叫做 CandidateWindow...这一定是 Visual Studio 的 BUG,可以被我们疯狂吐槽 现在我们有了搜索关键字:Gray Box,Candidate Window,Visual Studio。...解决问题 从搜索的结果中,我们可以得知,这是 Visual Studio 用来在 CodeLens 上显示辅助提示的指示窗口。...解决方法便是在代码编辑窗口中长按 Alt 键重新打开辅助指示窗口,然后松开 Alt 键关掉这些窗口。 试一试长按 Alt 键,果然出现了一模一样的窗口: ?

    2.3K20

    28 个提升开发幸福度的 VsCode 插件

    这是两个不同的扩展。然而,他们就像是一对情侣,可以完美的配合使用。这些扩展将为你的编辑器添加一系列颜色,并使代码块易于辨别,一旦你习惯了它们,如果 VSCode 没有它们就会让人觉得很平淡。...REST Client 它允许你发送 HTTP 请求并直接在 Visual Studio 代码中查看响应。 image.png 7....GitLens 正如其作者所说,GitLens 增强了 Visual Studio Code 中内置的 Git 功能,它包含了许多强大的功能,例如通过跟踪代码显示的代码作者,提交搜索,历史记录和GitLens...Path Intellisense — Visual Studio Code插件,可自动填充文件名。...Version Lens — 在Visual Studio代码编辑器中显示npm,jspm,bower,dub和dotnet核心的软件包版本信息。 14.

    9.7K30

    VisualStudio 使用 FastTunnel 辅助搭建远程调试环境

    不挑服务器的系统,基于 dotnet 的 FastTunnel 轻松做到了在各个系统平台上运行 另外两台分别是开发设备,和用户设备 咱期望做的就是在开发设备上可以让开发设备的 Visual Studio...文件,填写注释里写了必选的 ServerAddr 和 ServerPort 属性,这两个属性需要和服务端配置已知。...接着可选填写 Token 信息,如果你的服务端有更改的话,那这里需要同步更改。...也就是说访问服务器的 1275 端口,将转发到客户端的 60123 端口上 这里有一点需要注意的是,开放的服务器端口,需要服务器的端口可以被开放。...例如上文写了将本地的 60123 端口,映射到服务器的 1275 端口上,这就要求服务器的 1275 端口是防火墙允许的端口,不能被防火墙拦截 我的配置的内容代码如下 { "Logging":

    92620

    大前端时代你的VSCode插件

    GitLens GitLens 增强了 Visual Studio Code中内置的Git功能。...VS Live Share 此外,与传统的结对编程不同,Visual Studio Live Share允许开发人员一起工作,同时保留他们的个人编辑器首选项(例如主题,键绑定),以及拥有自己的光标。...npm Intellisense Visual Studio Code插件,用于在import语句中自动填充npm模块。 ? Beautify 格式化代码 ?...Apollo GraphQL 丰富的编辑器支持GraphQL客户端和服务器开发,可与Apollo平台无缝集成。 ? Go 此扩展为Go代码添加了对Go语言的丰富语言支持。 ?...React Native Tools 此扩展为React Native项目提供了一个开发环境。 使用此扩展,您可以调试代码并从命令选项板快速运行react-native命令。 ?

    1.4K30

    在 ts + Jest 单元测试中 debugging

    弹出一个单独的 devtools 窗口 执行命令 node --inspect node_modules/.bin/jest --runInBand --runInBand 选项,表示仅在当前的进程中连续运行所有测试...Jest运行测试用例的特点是多进程并发运行不同测试案例,达到快速的效果。但是这样对调试来说是没法进行的。这个参数保证了使用一个进程运行所有代码。 接下来就可以开心的 debug 了: ?...TS 写的,或者设计的逻辑较为复杂,还是推荐使用 Chrome Node DevTools 方式调试,用起来比较顺手 当然,有自己喜爱的调试方式,请忽略上述两条 REFERENCE 参考文档 调试...Studio Code:文中给出针对 ts + jest 的 launch.json 的配置项,可以借鉴一下 使用jest+enzyme进行react项目测试 - debug篇:虽说是 2017 年的文章...,仍旧有可借鉴性 Debugging with TypeScript, Jest, ts-jest and Visual Studio Code:对新手友好的单元测试 debugger 入门文章,一步步教你

    4K30

    创建API服务最小只要4行代码!!!尝新体验ASP.NET Core 6预览版本中的最小Web API(minimal APIS)新特性

    与之前的ASP.NET Core Web API相比,最小Web API在启动模板和框架结构上都有些不同。...,可以使用命令行工具执行dotnet new 创建,也可以使用IDE(如:Visual Studio, Rider, VS Code)来创建。...使用Visual Studio创建最小API项目 使用Visual Studio创建最小API项目,请确保已安装Visual Studio 2022 17.0.0 Preview 3.0(当前最新版本)...依次打开Visual Studio 2022的【Start Window】->【Create a new project】窗口,在右侧的已安装模板列表中选择【ASP.NET Core Empty】项目模板...在Visual Studio 2022中,按F5运行,如果在浏览中打开并显示如下页面,说明最小API项目运行正常,如图: 在最小API项目中,直接调用WebApplication.MapGet()方法即可完成路由的注册和映射

    5.2K30
    领券