【React】03.脚手架的进阶应用

文章目录

  • 暴露webpack配置
  • 暴露前后的区别
    • config文件夹:
    • scripts文件夹:
    • package.json
  • 常见的配置修改
    • 1.把sass改为less
    • 2.配置别名
    • 3.修改域名和端口号
    • 4.修改浏览器兼容
    • 5.处理Proxy跨域

2023年最新珠峰React全家桶【react基础-进阶-项目-源码-淘系-面试题】

暴露webpack配置

yarn eject

【React】03.脚手架的进阶应用_第1张图片
【React】03.脚手架的进阶应用_第2张图片
【React】03.脚手架的进阶应用_第3张图片

暴露前后的区别

暴露成功后生成config、scripts文件夹

config文件夹:

【React】03.脚手架的进阶应用_第4张图片

scripts文件夹:

【React】03.脚手架的进阶应用_第5张图片

package.json

  • dependences
    【React】03.脚手架的进阶应用_第6张图片
    babel-preset-react-app
    对@babel/preset-env语法包的重写(目的:把ES6转为ES5)
    重写的目的:让语法包可以识别React的语法,实现代码转换。

    create-react-app脚手架,默认配置的是sass预编译语言,项目中用的是sass,无需再处理;但是用的是less/stylus,则还需要自己处理。

  • scripts
    【React】03.脚手架的进阶应用_第7张图片

  • babel
    【React】03.脚手架的进阶应用_第8张图片

常见的配置修改

1.把sass改为less

yarn add less less-loader@8
yarn remove sass-loader

【React】03.脚手架的进阶应用_第9张图片

create-react-app脚手架默认webpack规则的修改:直接去暴露的源码中改!
所以需要具备一定的webpack能力.
【React】03.脚手架的进阶应用_第10张图片
【React】03.脚手架的进阶应用_第11张图片
【React】03.脚手架的进阶应用_第12张图片
【React】03.脚手架的进阶应用_第13张图片
【React】03.脚手架的进阶应用_第14张图片

2.配置别名

【React】03.脚手架的进阶应用_第15张图片
【React】03.脚手架的进阶应用_第16张图片

3.修改域名和端口号

【React】03.脚手架的进阶应用_第17张图片
如果想基于环境变量的方式来改:安装cross-env依赖$ yarn add cross-env、修改package.json的scripts配置
【React】03.脚手架的进阶应用_第18张图片

4.修改浏览器兼容

【React】03.脚手架的进阶应用_第19张图片

5.处理Proxy跨域

在src目录中,新建setupProxy.js,
安装依赖$ yarn add http-proxy-middleware

http-proxy-middleware:实现跨域代理的模块(webpack-dev-server的跨域代理原理,也是基于它完成的)

setupProxy.js:

const { createProxyMiddleware } = require("http-proxy-middleware");

module.exports = function (app) {
  app.use(
    createProxyMiddleware("/jian", {
      target: "https://www.jianshu.com/",
      changeOrigin: true,
      ws: true,
      pathRewrite: { "^/jian": "" },
    })
  );

  app.use(
    createProxyMiddleware("/zhi", {
      target: "https://news-at.www.zhihu.com/api/4",
      changeOrigin: true,
      ws: true,
      pathRewrite: { "^/zhi": "" },
    })
  );
};

【React】03.脚手架的进阶应用_第20张图片
【React】03.脚手架的进阶应用_第21张图片

你可能感兴趣的:(React,前端开发,react.js,rust,前端)