【问题标题】:npm run build does not use proxynpm run build 不使用代理
【发布时间】:2019-08-02 00:41:52
【问题描述】:

我有一个可用的 react.js 应用程序,它使用 npm start(使用 create-react-app 构建的应用程序)工作。 当我尝试运行 npm run build 时,它会构建应用程序。我使用

服务它
serve -s build -l 3000

它加载第一个仪表板页面但不与服务器通信。我已将 console.log 语句放在服务器中以检查是否有任何请求进入,但它从不记录任何内容......这意味着客户端不会与服务器交谈。 我在 package.json 中有代理语句以连接到端口 3300 上的服务器。这在开发模式下有效,但在生产模式下似乎无法获取 package.json 中的代理设置。

请指导...这是我第一次切换到生产模式...任何有关切换到生产模式的指导都会有所帮助。

顺便说一句,我也使用 react-loadable...

【问题讨论】:

  • proxy 字段仅用于开发中的 webpack-dev-server,不用于生产。

标签: reactjs react-loadable


【解决方案1】:

感谢大家的帮助....

最后,我了解到“npm run build”只是创建要部署的静态文件。但如何使用它,是我们的双手。 :)

我在 /server 文件夹中复制了 build 文件夹,并在我的根 server.js 文件本身中添加了以下行。基本上,从 /server/build 文件夹中提供静态文件,一切都很好。

app.use('/', express.static(__dirname+'/server/build'))

感谢您的支持。 :)

【讨论】:

  • 我遇到了类似的问题,但我没有使用 Express。它是一个简单的 React Js 应用程序,我必须部署它,而我的后端 API 位于不同的服务器上。我该怎么做才能让它发挥作用?我可以使用您用来解决此问题的行或创建配置 setupProxy.js 吗?你能指导一下步骤吗?谢谢
【解决方案2】:

package.json 中的 proxy 字段仅供 webpack-dev-server 开发使用。你可以了解更多关于这个here

【讨论】:

  • 这将取决于你如何部署你的应用程序,你正在尝试做什么,在不知道这些的情况下很难给你答案。
  • 好吧,我有一个简单的应用程序。一种用于服务器端,使用 node.js + express.js + MongoDB,它在 localhost:3300 上提供 API。其他是使用在 localhost:3000 上侦听的 create-react-app 构建的反应应用程序。我在反应应用程序的 package.json 上使用“proxy”="localhost:3300"。该应用程序适用于服务器的“npm run dev”和客户端的“npm start”。现在我想以生产模式将它安装在我的客户机器上。我使用“npm run build”并复制了除 /src 文件夹之外的所有文件。您需要更多信息吗?请问……这对我很重要。
  • 你想分别部署react app和express app吗?喜欢在不同的端口上运行吗?
  • 是的,我的目标是让它分开。现在,我找到的解决方案是通过服务器静态地为客户端提供服务。但是远程服务器的解决方案是最好的。谢谢
  • 然后将请求发送到 localhost:3300 而不是发送到同一个端口,我猜你正在发送这样的请求 fetch(/api/endpoint),而不是 fetch('https://localhost:3300/api/endpoint')
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
  • 1970-01-01
  • 2020-09-18
  • 2021-02-01
  • 2020-08-25
  • 2021-03-11
  • 2023-01-09
相关资源
最近更新 更多