首页 > 解决方案 > 如何通过 create-react-app 在远程开发盒上使用 npm start

问题描述

我想知道在远程主机上进行开发时如何使用 create-react-app "npm start" 脚本。

Nginx 作为反向代理运行。外部 uri 如下所示:

https://my-dev-box/my-cra 

设置为代理到:

http://localhost:3000

CRA 应用程序是静态的(即没有 API 调用)。

浏览器的 Web 开发控制台中出现的错误是与 /static/js/bundle.js 和 favicon 相关的 404。应用程序的 index.html 页面提供 200 响应。

当我构建应用程序时,“npm build”会生成一个具有正确路径的 index.html 文件(由 package.json 中的“主页”设置提供)。我查看了围绕“Invalid Host Header”和“DANGEROUSLY_DISABLE_HOST_CHECK”的文档/票证,但没有找到适合我的组合。

在我看来,根本问题是“npm start”似乎不知道(因为“npm build”知道)WebDevServer 在代理后面,因此没有为资源构建正确的路径。

所以重申这个问题,有没有人知道如何让“npm start”在远程开发框的反向代理后面很好地工作。(使用的 create-react-app 版本:1.5.2)

(注意:使用“npm build”时,应用程序在代理后面完美运行。)

更新:感谢这个问题,我在“webpack.config.dev.js”中找到了这条评论:

// Webpack uses `publicPath` to determine where the app is being served from.
// In development, we always serve from the root. This makes config easier.
const publicPath = '/';

我想这意味着除非我退出项目,否则我想做的事情不会那么实际。(我有点不愿意这样做 - 使用 create-react-app 的原因是 React 的新颖性。)

标签: create-react-app

解决方案


推荐阅读