react03

news2024/12/28 9:30:51

react03

修改脚手架创建的打包命令

根据scripts中的命令,执行npm run eject ,输入y, 如果对原始的脚手架文件有过改动需要进行将修改后的文件提交到git 历史区 ,防止暴露后的代码覆盖我们自己的文件
git 提交:
+ git add .
+ git commit -m ‘修改记录’
+ git push // 推送到远端仓库,暴露修改文件操作可以不执行此操作
+ git pull
在执行完暴露操作后,会多出 config,scripts文件夹,packaje.json 文件中也会多出对应的webpack配置的打包项。
config 文件夹中
+ path.js : webpack中大包需要的一些路径
+ webpackdevserver.config : dev-server配置
+ webpack.config.json : 默认的一些webpack打包规则,用来启动服务
script 文件夹中
+ 将原本scripts中的 *start, build, text 配置文件放在此文件夹下
在这里插入图片描述此配置是对 @babel/preset-env 语法包(将es6语法重写为es5)的重写 , 目的: 可以识别react代码,实现代码转换
在这里插入图片描述

修改后的scripts,如果在执行 npm run 命令时,不再执行react- scripts封装的插件,而是基于node,执行对应的入口文件,也就是箭头的指向文件,并且eject命令的插件文件就不存在了,暴露后无法再还原

package.json 中会多出一个babel属性,类似于babel。comfig.js ,是对babel-loader的额外配置

常见的配置修改

1, 修改react默认生成的样式解析包:

  • 将sass修改为less预编译 : npm add less less-loader@8 安装less , npm remove sass -loader 移除sass
  • 安装完成后,修改webpack中的配置项,就直接去webpack配置包中修改源码,: webpack.config.js 中修改webpack打包规则, webpackDevServer.config.js 中修改dev-server配置
  • 所以需要webpack知识,学
  • 在webpack.config.js 文件中找到 model.export ,这个就是道出的webpack配置,然后找到在这里插入图片描述
    在这里插入图片描述
    修改对应的规则

2, 修改路经别名:

  • 修改路经别名: 在这里插入图片描述

找到resolve配置对象中的alias配置对象,配置路经别名: 此处将paths下的appSrc中的路经改为@

  • 修改配置后,在src代码文件夹下创建一个less文件,检查是否生效:在这里插入图片描述

新建index.less 编写less样式, 然后通过修改后的路经在index.js文件中引入样式在这里插入图片描述
最后效果如图在这里插入图片描述

3,修改端口号,域名

  • 在scripts夹中的start文件中找到在这里插入图片描述
    PORT,HOST分别对端口号和域名进行修改
  • 在还可以通过安装 cross-env 来修改环境变量的方式修改 : 端口号
  • 先在package.json中安装 cross-env : npm i cross-env , 并直接在start中配置在这里插入图片描述
    在这里插入图片描述

4,修改浏览器的兼容问题

  • 修改兼容列表,实现浏览器兼容 在这里插入图片描述
  • 对 postcss-loader 生效: 控制css前缀
  • 对 babel-loader 生效: 控制es6的转换,但是不能处理es6的内置API兼容,需要babel/polyfull 实现对常见内置API的重写
  • 如果不在脚手架中需要手动安装 npm add polyfill 并在入口文件中 引入import “@babel/polyfill” , 如果在脚手架中则无需安装,因为在package.json 中自动安装了 react-app-polyfill 这是对其的封装插件
    利用脚手架中的插件对es6语法兼容:在这里插入图片描述

5, 处理proxy跨域 : 在src目录下添加 setupProxy.js 文件,安装 npm add http-proxy-middleware 实现跨域代理的模块,webpack-dev-sercer的跨域也是基于此完成的

  • 使用方法: 在这里插入图片描述

  • 为什么要写在src中的setupProxy.js 文件中在这里插入图片描述
    在这里插入图片描述
    在webpack-dev-server 的proxy代理中就是这么规定的,要想修改,需要在src/setupProxy.js中进行代理配置(代码的意思是:如果此文件存在,就执行此文件中的代码)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1517314.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务器Debian 12.x中安装Jupyer并配置远程访问

服务器系统:Debian 12.x;IP地址:10.100.2.138 客户端:Windows 10;IP地址:10.100.2.38 利用ssh登录服务器: 1.安装python3 #apt install python3 2.安装pip #apt install python3-pip … 3.安装virtualen…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:GridCol)

栅格子组件,必须作为栅格容器组件(GridRow)的子组件使用。 说明: 该组件从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 可以包含单个子组件。 接口 GridCol(option?:{span?: number | …

使用 opencv 识别答题卡,生成填涂答案

一般答题卡设计时都在试卷4个角预留4个一样大小的黑块 仅能识别选择题判断题之类的填涂答题的题目,不能识别填空题应用题等其它主观题 使用 opencv 识别试卷图片中所有黑块,再根据黑块大小获取四个角的位置,根据四个黑块位置校正图像 将图…

怎么避免电脑数据被拷贝?电脑如何禁用USB功能?

在无纸化办公的今天,很多重要数据都存放在电脑中。为了避免数据泄露,需要采用安全的方式保护电脑数据。那么,该如何避免电脑数据被拷贝呢?下面我们就来了解一下。 方法一:物理隔绝 物理隔绝是一种原始但有效的USB禁用…

发布组件到npm

1.环境准备&#xff0c;需要装好node&#xff0c;注册号npm账号,这里不做详解 2.创建编写组件和方法的文件夹package 3.在文件夹中创建需要定义的组件&#xff0c;并且加上name属性 //组件 <template><div><button>按钮组件</button></div> &…

Hadoop,Hive 数据预处理CR

记录一次大材小用,我在将.csv电影数据集 电影json数据 导入MySQL时,出现了报错: 很明显,意味着.csv中的数据有非utf8编码的, 尝试使用file查看了下.csv文件的编码格式: 如果不确定原始编码,可以先用file命令尝试检测一下: file -i input.csv该命令会显示文件的MIME类型…

医学图像目标跟踪论文阅读笔记 2024.03.08~2024.03.14

“Inter-fractional portability of deep learning models for lung target tracking on cine imaging acquired in MRI-guided radiotherapy” 2024年 期刊 Physical and Engineering Sciences in Medicine 医学4区 没资源&#xff0c;只读了摘要&#xff0c;用的是U-net、a…

前端路由跳转bug

路由后面拼接了id的千万不能取相近的名字&#xff0c;浏览器分辩不出&#xff0c;只会匹配前面的路径 浏览器自动跳转到上面的路径页面&#xff0c;即使在菜单管理里面配置了正确的路由 跳转了无数次&#xff0c;页面始终不对&#xff0c;检查了路由配置&#xff0c;没有任何问…

html--bug

文章目录 html html <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>老师</title><style>body {background-color: #008000;margin: 0px;cursor: none;overflow: hidden;}</style></head><bod…

算法---滑动窗口练习-4(无重复字符的最长子串)

无重复字符的最长子串 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;点这里 2. 讲解算法原理 算法的主要思想是使用滑动窗口来维护一个不含重复字符的子串。定义两个指针 left 和 right 分别表示窗口的左边界和右边界。还定义了一个数组 hash 来记…

Python数据分析-5

1.时间序列 2.pandas重采样 重采样&#xff1a;指的是将时间序列从一个频率转化为另一个频率进行处理的过程&#xff0c;将高频率数据转化为低频率数据为降采样&#xff0c;低频率转 化为高频率为升采样。 统计出911数据中不同月份电话次数的变化情况&#xff1a…

后端程序员入门react笔记(八)-redux的使用和项目搭建

一个更好用的文档 添加链接描述 箭头函数的简化 //简化前 function countIncreAction(data) {return {type:"INCREMENT",data} } //简化后 const countIncreAction data>({type:"INCREMENT",data })react UI组件库相关资料 组件库连接和推荐 antd组…

DM数据库安装(Linux)

Linux安装 操作系统CPU数据库CentOS7x86_64 架构dm8_20230418_x86_rh6_64 先把压缩包扔过去 新建 dmdba 用户 创建用户所在的组&#xff0c;命令如下&#xff1a; groupadd dinstall 创建用户&#xff0c;命令如下&#xff1a; useradd -g dinstall -m -d /home/dmdba -s /…

[论文笔记]LLaMA: Open and Efficient Foundation Language Models

引言 今天带来经典论文 LLaMA: Open and Efficient Foundation Language Models 的笔记&#xff0c;论文标题翻译过来就是 LLaMA:开放和高效的基础语言模型。 LLaMA提供了不可多得的大模型开发思路&#xff0c;为很多国产化大模型打开了一片新的天地&#xff0c;论文和代码值…

亚信安慧AntDB在数据可靠性和系统安全中的实践

亚信安慧AntDB以持续创新和技术进步为理念&#xff0c;不断优化性能和功能&#xff0c;至今已经保持了15年的平稳运行。这一漫长的历程并非偶然&#xff0c;而是源于AntDB团队对技术的不懈探索和追求。他们始终秉承着“永不停歇&#xff0c;永不满足”的信念&#xff0c;将技术…

Android14之报错:error:add its name to the whitelist(一百九十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

如何使用“ubuntu移动文件、复制文件到其他文件夹“?

一、移动文件到其他文件夹命令 mv node_exporter-1.5.0.linux-amd64.tar.gz /usr/local/etc/prometheus 二、复制文件到其他文件夹命令 cp node_exporter-1.5.0.linux-amd64.tar.gz /home/master

4种小众的能力,帮你更好地适应未来

新年伊始&#xff0c;又是一个全新的开始。 未来的社会究竟需要什么样的能力&#xff1f;这已经是一个很老的话题&#xff0c;已经有许许多多讨论了。但这其中&#xff0c;可能有一些是容易被人忽略的&#xff0c;或者不容易被注意到的。 我想跟你一起分享&#xff0c;我对这个…

vue 如何实现手机横屏功能

功能背景 有些需求需要手动实现横屏功能&#xff0c;比如点击一个横屏的图标将整个页面90度翻转&#xff0c;再点击退出横屏回到正常页面。 实现思路 一拿到这个需求很可能就被吓到了&#xff0c;但简单来说&#xff0c;就是点击横屏按钮跳转一个新页面&#xff0c;通过 cs…

CSS 3

CSS3现状 在CSS2的基础上新增(扩展)样式移动端支持优于PC端不断改进中应用相对广泛 1.CSS3属性选择器 选择符简介E[att]选择具有att属性的E元素E[att"val"]选择具有att属性且属性值等于val的E元素E[att^"val"]匹配具有att属性、且具有以val开头的E元素E…