欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > react18基础教程系列--安装环境及packagejson文件分析

react18基础教程系列--安装环境及packagejson文件分析

2024/10/25 4:19:02 来源:https://blog.csdn.net/qq_27702739/article/details/142171775  浏览:    关键词:react18基础教程系列--安装环境及packagejson文件分析

一个React项目中,默认会安装:

  • react:React框架的核心
  • react-dom:React 视图渲染的核心「基于React构建WebApp(HTML页面)J—>react-native:构建和渲染App的
  • react-scripts: 脚手架为了让项目目录看起来干净一些,把webpack打包的规则及相关的插件/LOADER等都隐藏到了node_modules目录下,react-scripts就是脚手架中自己对打包命令的一种封装,基于它打包,会调用node_modules中的webpack等进行处理!!
  • web-vitals: 性能检测工具
{"name": "r18app","version": "0.1.0","private": true,"dependencies": {"@testing-library/jest-dom": "^5.17.0","@testing-library/react": "^13.4.0","@testing-library/user-event": "^13.5.0","react": "^18.2.0","react-dom": "^18.2.0","react-scripts": "5.0.1","web-vitals": "^2.1.4"},"scripts": {"start": "react-scripts start", // 开发环境"build": "react-scripts build", //生产环境"test": "react-scripts test", // 测试环境"eject": "react-scripts eject" // 这个可以弹出隐藏的webapck配置文件,但是要小心,过程是不可逆的},"eslintConfig": {  // eslint语法检测相关配置"extends": ["react-app","react-app/jest"]},"browserslist": { // 基于browserlist规范,设置浏览器的兼容情况"production": [">0.2%",  // 使用率超0.2%的浏览器"not dead", // 不考虑ie"not op_mini all" // 不考虑欧朋浏览器],"development": ["last 1 chrome version","last 1 firefox version","last 1 safari version"]}
}

环境变量配置

如果需要自定义环境变量,必须加上前缀 REACT_APP_,否则不会生效。

"scripts": {"start": "cross-env PORT=8888 REACT_APP_MODE=DEV API_URL=http://www.baidu.com react-scripts start","build": "react-scripts build","test": "react-scripts test","eject": "react-scripts eject"},

在这里插入图片描述

可以看到REACT_APP_MODE有值,API_URL没有写入到本地环境变量中。

在这里插入图片描述
加上这个REACT_APP_就可以在项目中获取到了

代理服务的实现

  • 在src目录下面添加setupProxy.js文件,注意版本的问题,这里有坑,会导致页面不显示,低版本的处理方法可以去搜下别的教程,高版本 `“http-proxy-middleware”: "^3.0.2"使用方法如下:

在这里插入图片描述

const { createProxyMiddleware } = require("http-proxy-middleware"); //引入http-proxy-middleware,react脚手架已经安装
module.exports = function (app) {app.use("/api",createProxyMiddleware({//遇见/api1前缀的请求,就会触发该代理配置target: "http://localhost:3001", //请求转发给谁changeOrigin: true, //控制服务器收到的请求头中Host的值pathRewrite: { "^/api": "" }, //重写请求路径,下面有示例解释}));
};
function App() {useEffect(() => {console.log(process.env);// 请求接口fetch("/api/v1/users").then((res) => res.json()).then((res) => console.log(res));}, []);return (<div className="App"><h1>Hello World</h1><p>当前的环境是:{process.env.NODE_ENV}</p><p>当前的环境是:{process.env.REACT_APP_API_URL}</p></div>);
}

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这样就完成了,开发环境下的后端服务接口的联调配置。

参考文献

http-proxy-middleware最新使用教程

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com