【问题标题】:Can I use IIS as the development server with "npm start"我可以通过“npm start”将 IIS 用作开发服务器吗
【发布时间】:2019-06-07 04:57:51
【问题描述】:

我已经创建了一个 React 应用程序,并且可以“npm start”在端口 3000 上成功使用其内置开发服务器,但我希望能够在本地 IIS 网络的上下文中运行和调试我的应用程序服务器(以便我可以使用我当前的集成身份验证凭据引用该站点上的其他服务)。

有没有办法告诉“npm start”不要使用它自己的内置开发服务器,而是使用 IIS(每当我在 React 中更改某些内容时都会热重新加载)?

我可以在 IIS 中很好地运行它,只要我先“npm run-script build”,然后重新加载我的浏览器,但这在开发过程中有点不受欢迎。

谢谢。

PS,我用这个来创建应用程序:“npx create-react-app my-app --typescript”

【问题讨论】:

  • 在我找到一种方法让 IIS 为其提供服务并进行热模块替换之前,我已将我的 API 服务(在端口 80 上)更改为使用身份模拟并启用匿名访问(启用了 CORS ) 以便我在端口 3000 上的 React 应用程序可以使用 API 以及我的身份。一旦构建并发布到单独的 Web 服务器,我就编辑了我的配置转换文件以从 web.config 中删除身份模拟和 CORS 设置。

标签: node.js reactjs iis npm


【解决方案1】:

以下是我如何在 IIS 中更改我的 Web 服务以启用 CORS 和身份模拟的完整描述,以便我的 localhost:3000 React 应用程序可以毫不费力地使用它:

http://marcfearby.com/blog/computing/developing-in-react-with-an-api-hosted-in-iis

【讨论】:

  • 前几天我在你的博客上发表了评论,但看起来它被删除了。你的方法有很多问题和可能的缺陷。如果您仍然可以访问评论,请查看并告诉我您是否可以回答我的问题。
  • 我的博客一定认为它是垃圾邮件,因为它包含 URL 并阻止了它。我现在已经批准了。要回答您的问题,您不想在端口 3000 上调用您的 API,因为它不在端口 3000(“npm start”Web 服务器)上运行,它应该在端口 80 上运行(我想)。另外,请尝试在不加密身份模拟位的情况下先使其工作(在您可以使其正常工作之前,这需要付出太多努力)
  • 另外,我没有在我的 React 应用程序中设置 baseUrl,因为我不想弄乱它自己的路由。我所做的只是在应用程序内的 Axios 请求中直接调用 localhost/api,在我的 Axios 调用中任何地方都没有端口 3000。感谢您指出我的类型。现在已经修复了:-)
  • 好的,所以您使用的是 IIS Express。在这个问题/答案/博客中并不清楚。我真的希望这适用于本地 IIS,因为我有一个需要 Windows 身份验证的内部 API,并且托管在本地 IIS 上。看来我是世界上第一个尝试这样做的人,因为我在网上找到的唯一帖子都是关于 IIS Express 的。
  • 我使用的是 IIS 10.0.15063.0,当您“打开或关闭 Windows 功能”时会使用该版本。我以前从未使用过 IIS Express,总是告诉 Visual Studio 使用本地 IIS(项目 > 属性 > Web)。
【解决方案2】:

任何可以提供静态 js 文件的服务器都可以工作。确保您进行必要的配置以在每个请求上加载 index.html。

由于 react 应用程序将使用 index.html 进行引导,所以这应该是一直加载的文件。

【讨论】:

  • 我已经可以做到这一点,但让我摸不着头脑的是 IIS 中的热重载
猜你喜欢
  • 2017-10-06
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
  • 2017-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
相关资源
最近更新 更多