create-react-app - 如何通过 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 的新颖性。)
解决方案
推荐阅读
- javascript - 我有两个函数更新相同的属性。在控制台和页面上都有一个更新。其他仅在控制台中更新
- python - 我如何知道 Image 在 Kivy 中是否正在播放或已结束?
- python - SQLAlchemy 与自我表的关系
- azure - 如果不使用批准超时,Azure 管道将永远运行
- javascript - 选择未在 KnockoutJS 中显示的选项
- reactjs - 输入框的可扩展布局
- c - gstreamer 在第一个示例程序中没有打开窗口
- java - Java:日期字符串到小时
- mongodb - 在两个条件适用的情况下查询相同的文档属性
- go - 写入 exec.Cmd.StdinPipe() 没有任何作用