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

Less resolver error:‘~antd/es/style/themes/index.less‘ wasn‘t found.

记录一次使用Ant Design Pro框架时出现的bug

这是我最开始的package.json版本,然后执行npm run build(max build) 打包时会报上面的错误

{"name": "ant-design-pro","version": "6.0.0","private": true,"description": "An out-of-box UI solution for enterprise applications","repository": "git@github.com:ant-design/ant-design-pro.git","scripts": {"analyze": "cross-env ANALYZE=1 max build","biome:lint": "npx @biomejs/biome lint","build": "max build","deploy": "npm run build && npm run gh-pages","dev": "npm run start:dev","gh-pages": "gh-pages -d dist","jest": "jest","lint": "npm run biome:lint && npm run tsc","lint-staged": "lint-staged","openapi": "max openapi","prepare": "husky","preview": "npm run build && max preview --port 8000","record": "cross-env NODE_ENV=development REACT_APP_ENV=test max record --scene=login","serve": "umi-serve","start": "cross-env UMI_ENV=dev max dev","start:dev": "cross-env REACT_APP_ENV=dev MOCK=none UMI_ENV=dev max dev","start:no-mock": "cross-env MOCK=none UMI_ENV=dev max dev","start:pre": "cross-env REACT_APP_ENV=pre UMI_ENV=dev max dev","start:test": "cross-env REACT_APP_ENV=test MOCK=none UMI_ENV=dev max dev","test": "jest","test:coverage": "npm run jest -- --coverage","test:update": "npm run jest -- -u","tsc": "tsc --noEmit"},"browserslist": ["defaults"],"dependencies": {"@ant-design/icons": "^4.6.1","@ant-design/pro-components": "^2.7.19","@ant-design/pro-field": "^3.1.0","@ant-design/pro-layout": "^6.22.7","@ant-design/v5-patch-for-react-19": "^1.0.3","@umijs/max": "^4.5.0","antd": "^5.27.4","antd-style": "^3.0.0","classnames": "^2.5.1","dayjs": "^1.11.13","max": "^0.0.1","rc-field-form": "^2.7.0","react": "^19.0.0","react-dom": "^19.0.0","umi-presets-pro": "^2.0.3"},"devDependencies": {"@ant-design/pro-cli": "^3.2.2","@biomejs/biome": "^2.0.6","@commitlint/cli": "^19.5.0","@commitlint/config-conventional": "^19.5.0","@testing-library/dom": "^10.4.0","@testing-library/react": "^16.0.1","@types/express": "^5.0.3","@types/jest": "^30.0.0","@types/lodash": "^4.17.10","@types/node": "^24.0.10","@types/react": "^18.0.33","@types/react-dom": "^18.0.11","@types/react-helmet": "^6.1.11","cross-env": "^7.0.3","express": "^4.21.1","gh-pages": "^6.1.1","husky": "^9","jest": "^30.0.4","jest-environment-jsdom": "^29.7.0","less": "^4.4.1","lint-staged": "^13.2.0","mockjs": "^1.1.0","prettier": "^2.8.7","prettier-plugin-organize-imports": "^3.2.2","prettier-plugin-packagejson": "^2.4.3","ts-node": "^10.9.2","typescript": "^5.0.3"},"engines": {"node": ">=20.0.0"}
}

后来改了下图中的两处成功修复了bug,改完不要忘了重新下载依赖包

下面是这个错误的解释:

这个错误是 Less 解析器找不到 antd 的主题文件 导致的,通常和 antd 版本不兼容、依赖安装不完整或路径解析配置有关。按以下步骤解决:

1. 核心原因:antd 版本与引用路径不匹配

~antd/es/style/themes/index.less 是 Ant Design 4.x 版本 中的主题文件路径。如果你的项目中安装的是 Ant Design 5.x,这个路径会被移除(5.x 改用 CSS-in-JS,不再有这个 less 文件),从而导致找不到文件。

2. 具体解决步骤

步骤 1:检查 antd 版本是否兼容

  • 打开 package.json,查看 antd 的版本:
    • 如果是 5.x(如 "antd": "^5.0.0"):你的项目可能混用了 Ant Design 4.x 的组件库(如 @ant-design/pro-layout 4.x 以下版本),这些组件依赖 4.x 的 less 主题文件,与 5.x 冲突。→ 解决方案:将 @ant-design/pro-layout 等 Pro 组件升级到支持 antd 5.x 的版本(通常是 ^7.0.0 以上):

      bash

    • npm install @ant-design/pro-layout@latest  # 或 yarn add ...
      
    • 如果是 4.x(如 "antd": "^4.0.0"):可能是依赖安装不完整,直接执行步骤 2 重新安装。

步骤 2:重新安装依赖,修复可能的安装损坏

删除现有依赖和缓存,重新安装:

bash

# 1. 删除 node_modules 和锁文件
rm -rf node_modules package-lock.json yarn.lock  # Windows 用 rmdir /s node_modules 等# 2. 清除 npm 缓存(可选)
npm cache clean --force# 3. 重新安装依赖
npm install  # 或 yarn install

步骤 3:检查 Less 路径解析配置(针对自定义配置项目)

如果项目中自定义了 webpack 或 Umi 的 Less 配置,可能是 ~ 符号(表示 node_modules)没有被正确解析。

  • 对于 Umi 项目,确保 config/config.ts 中没有错误覆盖 Less 配置,默认配置通常会自动处理 ~ 路径。
  • 对于原生 webpack 项目,检查 less-loader 配置,确保 javascriptEnabled: true 且支持 ~ 解析:

    javascript

    运行

    // webpack.config.js 中 less-loader 配置
    module.exports = {module: {rules: [{test: /\.less$/,use: [// ...其他 loader{loader: 'less-loader',options: {lessOptions: {javascriptEnabled: true,  // 必须开启paths: [path.resolve(__dirname, 'node_modules')],  // 确保包含 node_modules},},},],},],},
    };
    

步骤 4:临时规避(如果急需运行项目)

如果以上步骤无效,且确认使用 antd 4.x,可以手动创建缺失的路径(不推荐长期使用,但可临时测试):在 node_modules/antd/es/style/themes/ 下创建 index.less,内容为空(或从 antd 4.x 的源码中复制该文件内容)。

改完不要忘了重新下载依赖包!

改完不要忘了重新下载依赖包!

改完不要忘了重新下载依赖包!

 

 

http://www.dtcms.com/a/431194.html

相关文章:

  • php网站验证码错误网站改版对用户的影响
  • vue中如何实现异步加载组件
  • 网站地图seo石城网站建设
  • 怎么防止网站被镜像wordpress seo 主题
  • 那些钓鱼网站是怎么做的页面设计上边距在哪里找
  • 中国移动idc建设网站wordpress 导航栏
  • @RequestBody与@PathVariable什么时候加
  • 2011 年真题配套词汇单词笔记(考研真相)
  • “AMQP协议深度解析:消息队列背后的通信魔法”之核心概念与SpringBoot落地实战
  • 网规答题点【summer解析】华为5G空口新技术有F-OFDM和SCMA,F-OFDM是基于OFDM的改进版本,可以 实现空口物理层分片,兼容LTE 4G。
  • 简约智能设备制造公司网站今天东营发生的重大新闻
  • Matrixport DAT与XBIT携DEX赋能生态,共赴新加坡TOKEN2049
  • 做网站需要什么营业执照中国建设企业协会网站首页
  • 微服务项目->在线oj系统(Java-Spring)--增删改(前端)
  • 软件网站开发评估免费拿货的代理商
  • C#基础05-控制语句
  • 网站域名过期还能用吗wordpress主题管理插件
  • 扩展BaseMapper类
  • 秦皇岛建设部网站工程建设信息都在哪个网站发布
  • 多模态分类:图文结合的智能识别与代码实战
  • UE5 - C++项目基础
  • Word和WPS文字表格内的文字无法垂直居中?这样设置
  • 平台设计网站公司电话号码网站建设最好用什么语言
  • 【数组倍数去重】2022-11-26
  • vite插件的使用
  • 惠州网站建设是什么渠道查官网
  • 个人做网站有什么条件网站备案信息填写
  • 自建网站代理服务器深圳建设网站推荐
  • 2025 AI 图景:从工具革命到生态重构的生存逻辑
  • 基于人工智能的电信经营分析系统架构研究