React新手疑问:React Build的作用及部署相关问题
关于React Build和CORS问题的解答
为什么部署不能直接上传本地开发文件夹,必须用React Build?
- 本地开发用的
react-scripts start启动的是开发服务器,带热重载、源码映射、错误提示这些调试专属功能,代码是未压缩的原始状态,体积大、运行效率低,完全不适合生产环境。 - 执行
npm run build会把你的React项目打包成优化后的静态文件:JS/CSS代码会被压缩混淆、移除调试代码,图片等资源也会被优化,最终生成一个build文件夹,里面只有用户浏览器需要加载的最小必要文件。 - 本地开发文件夹里有大量冗余内容(比如
node_modules、开发环境配置文件、缓存文件),上传这些不仅浪费服务器空间,还可能泄露敏感信息,而且浏览器根本不需要这些东西。部署时只需要上传build里的静态文件即可,后端可以直接托管它们,或者放到CDN上提升访问速度。
之前处理CORS的功夫是不是白费了?
- 完全没有白费。本地开发时前后端运行在不同端口,浏览器的同源策略会拦截跨域请求,这时候必须通过后端设置CORS响应头、或者在React开发服务器里配置proxy代理,才能让前端正常调用后端接口——没有这些配置,你本地连调试都做不了,根本没法完成项目开发。
- 部署后同一端口运行,是因为后端直接托管了前端静态文件,或者用反向代理把前端的接口请求转发到后端服务,这时候浏览器认为请求是同源的,自然不需要CORS。但本地开发阶段的CORS配置是保证你能顺利开发的必要步骤,绝对不是无用功。
内容的提问来源于stack exchange,提问作者user21103751
相关产品推荐
相关产品推荐

