【REACT16】react老项目版本依赖适配问题

现在react已经升级到v19了,但又很多老项目版本还停滞在16.x

记录下在用react16创建新项目的时候版本依赖问题

package文件版本号

json 复制代码
{
  "name": "ms-bike-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "axios": "^0.18.0",
    "react": "^16.3.2",
    "react-dom": "^16.3.2",
    "react-router": "^4.2.0",
    "react-router-dom": "^4.2.2",
    "react-scripts": "^5.0.1"
  },
  "scripts": {
    "dev": "craco start",
    "build": "craco build",
    "test": "craco test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": []
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@craco/craco": "^6.2.0",
    "craco-less": "^3.0.1",
    "less-loader": "^4.1.0"
  }
}

覆盖cra的默认配置

react-scripts用最新的即可

在首页新建一个craco.config.js配置文件,使用cjs格式

我们在项目中使用的css预处理语言是less,所以直接这样配置使得less文件生效

js 复制代码
const CracoLessPlugin = require('craco-less');
module.exports = {
    plugins: [
        {
            plugin: CracoLessPlugin,
            options: {
                lessLoaderOptions: {
                    lessOptions: {
                        modifyVars: { '@primary-color': '#1DA57A' },
                        javascriptEnabled: true,
                    },
                },
            },
        },
    ],
}

测试效果



这样就不用eject出cra隐藏的配置文件了,后面就可以按需自定义配置文件了

引入antd

正确的版本

bash 复制代码
"antd": "^4.24.16",

其他版本会报错,没试过v5的,查资料说可以支持,可是自己试下

引入的文件必须是less格式才生效

js 复制代码
import 'antd/dist/antd.less';

下面的方式有问题的,会报错,但是也生效,就是控制台看着很乱

js 复制代码
import 'antd/dist/antd.css';
相关推荐
彭亚川Allen3 分钟前
从零手搓 RAG 之检索全流程,给大模型接上自己的知识库
前端·后端·ai编程
IT_陈寒5 分钟前
别让Java字符串拼接偷偷吃掉你的内存
前端·人工智能·后端
软件技术NINI36 分钟前
圣罗兰彩妆html+css 4页
前端·css·html
2601_951615201 小时前
网站模板 网站网页模板下载
前端·网络·html
酷炫码神2 小时前
Day 1|HTML5:一个商城首页的骨架,从 DOCTYPE 到语义化
前端·html·html5
AI源码2 小时前
鲜花商城(HTML 版)
前端·html
hiahiahia1232 小时前
Message 和对话
服务器·前端·数据库
溪语流沙3 小时前
【Web全栈进阶】Composition API与组件通信:props深入、emit、插槽
前端·css·vue.js
ZoeLandia3 小时前
TypeScript 03:泛型与工具类型
前端·typescript
code_Bo3 小时前
从策划到上线:我和 AI 一起做了个微信记账小程序
前端·ai编程·cursor