当前位置: 首页 > news >正文

网站测试重点是哪几个部分百度关键词竞价价格

网站测试重点是哪几个部分,百度关键词竞价价格,重庆seo霸屏,网站建设中模版目录 暴露webpack配置package.json的变化修改webpack.config.js配置less修改域名、端口号浏览器兼容处理处理跨域 暴露webpack配置 react-scripts对脚手架中的打包命令进行封装,如何暴露这些打包配置呢?上篇写到在package.json中的scripts配置项中有eje…

目录

  • 暴露webpack配置
  • package.json的变化
  • 修改webpack.config.js
    • 配置less
    • 修改域名、端口号
    • 浏览器兼容处理
    • 处理跨域

暴露webpack配置

react-scripts对脚手架中的打包命令进行封装,如何暴露这些打包配置呢?上篇写到在package.json中的scripts配置项中有eject属性

 "scripts": {"eject": "react-scripts eject"},

执行下面命令

yarn run eject

之后会有以下的提示,表示react-scripts eject是不可逆的。
在这里插入图片描述
随后又会有其他提示:
在这里插入图片描述
意思是当前的 Git 仓库中存在未跟踪的文件(untracked files)或未提交的更改(uncommitted changes)。初始化一个本地git仓库,提交本地修改记录

git init
git add .
git commit -m 'Update'

随后再次执行yarn run eject命令,最后会把配置文件暴露出来,如下:
在这里插入图片描述

package.json的变化

package.json中会安装很多依赖,会把打包所需要的依赖都重新安装一遍。
在这里插入图片描述
其中babel-preset-react-app是对@babel/preset-env(ES6转ES5)语法包的重写,目的是让语法包可以识别React语法,实现代码转换。

create-react-app脚手架,默认配置的是sass预编译语言,项目用的是sass,则无需处理,如果是less,则需要自己处理。

另外不在用react-scripts封装的插件去执行命令,直接基于node,去执行对应入口的文件,eject命令没有了。如下:

  "scripts": {"start": "node scripts/start.js","build": "node scripts/build.js","test": "node scripts/test.js"},

下面的配置,类似于babel.config.js对babel-loader的额外配置

  "babel": {"presets": ["react-app"]}

修改webpack.config.js

配置less

当我们使用less时候,需要进行以下修改:

yarn add less less-loader@8 # 新版本的 less-loader 兼容性不好

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改域名、端口号

可以在 scripts/start.js 文件中修改:

const DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000; // 可修改端口号
const HOST = process.env.HOST || '0.0.0.0'; // 可修改 IP(或域名)

在这里插入图片描述
如果要基于环境变量修改,则安装cross-env插件

yarn add cross-env -D
// 修改前
"scripts": {"start": "node scripts/start.js",...
},
// 修改后
"scripts": {"start": "cross-env PORT=8080 node scripts/start.js",...
},

浏览器兼容处理

浏览器兼容需要在package.json中的browserslist设置,如下:

 "browserslist": {"production": [">0.2%","not dead","not op_mini all"],"development": ["last 1 chrome version","last 1 firefox version","last 1 safari version"]},

但是只能解决两个问题:
1.对postcss-loader生效:控制CSS3前缀
2.对babel-loader生效:控制ES6的转换

无法解决ES6内置API的兼容,常见解决办法就是使用@babel/polyfill(对常见内置的API重写),可以yarn add @babel/polyfill,然后在入口import "@babel/polyfill" ,但是React的脚手架默认带了react-app-polyfill(对@babel/polyfill重写),只需要在入口文件引入:

// 对 ES6 内置 API 的兼容性处理
import 'react-app-polyfill/ie9'
import 'react-app-polyfill/ie11'
import 'react-app-polyfill/stable'

create-react-app 脚手架中,使用了 react-app-polyfill 来替代 @babel/polyfill,因为它提供了对 IE9、IE11 和最新稳定版本的兼容性,并且可以显式地进行按需导入。其具体的作用如下:

  • import 'react-app-polyfill/ie9':为 IE9 及以下版本提供 JavaScript 环境的 polyfill。
  • import 'react-app-polyfill/ie11':为 IE11 提供必要的 polyfill。
  • import 'react-app-polyfill/stable':为现代浏览器提供 polyfill,确保 JavaScript 新特性如 Promise、Object.assign 等可用。

为什么重写 @babel/polyfill 为 react-app-polyfill?
兼容性: react-app-polyfill已经专门为 React 项目优化,能更好地适配 React 的工作方式,尤其是在处理旧版浏览器时的表现。
按需加载:react-app-polyfill 允许你只按需引入支持的浏览器版本,而不像 @babel/polyfill 一开始就会加载所有polyfill。

处理跨域

在src目录中,新建setupProxy.js文件,安装http-proxy-middleware,它是专门实现跨域的,webpack-dev-server的跨域原理也是基于它完成的

yarn add http-proxy-middleware

比如以下案例:

const { createProxyMiddleware } = require("http-proxy-middleware")
module.exports = function (app){app.use(createProxyMiddleware("jian",{target:"https://www.jiashu.com/asimov",changeOrign:true,ws:true,pathRewrite:{"^/jian":""}}))
}
http://www.ritt.cn/news/2667.html

相关文章:

  • 淘客手机版网站怎么做网上宣传广告怎么做
  • wordpress提示安装杭州优化外包哪里好
  • 易云自助建站网址导航
  • 哪个网站做高仿衣服网络营销案例成功案例
  • 鹰潭网站建设公司新开传奇网站发布站
  • 外贸营销型网站开发搜索引擎优化原理
  • 网站建设销售员在线培训网站次要关键词
  • 西安公司章程在哪里下载seo排名赚靠谱吗
  • 深圳网站制作比较好公司深圳关键词排名seo
  • 浙江网站建设实验心得矿坛器材友情交换
  • 网站换空间 怎么下载中企动力做网站推广靠谱吗
  • 泰安创益网络科技有限公司爱站网seo综合查询
  • 淘宝网上购物商城营销网站seo推广
  • 沈阳网站建设方案活动推广方案
  • 怎么在服务器上面建设网站买卖链接网
  • 卧龙区2015网站建设口碑网站seo查询工具
  • 做网站 英语刚刚中国突然宣布
  • 深圳短视频拍摄公司seo排名谁教的好
  • 广州网站建设怎样做观看b站的广告网站平台
  • 网络运营者收集使用个人信息应当遵循什么的原则太原网站建设方案优化
  • 海外网站服务器租用百度网盘搜索神器
  • wordpress 抽奖seo百度快速排名
  • 河北省政府网站建设现状网络产品及其推广方法
  • web和网站的区别吗怎么做百度推广运营
  • 网站支付页面源代码南京seo公司排名
  • 装修网站实景图vr怎么做的推广计划怎么做
  • 新闻资讯网站模板合肥百度关键词推广
  • 品牌商城网站建设seo公司发展前景
  • 怎么给自己网站做搜索框哈尔滨最新疫情通报
  • 网上做网站兼职南宁网络推广有几家