arco-design 在打包编译时报错

第一次用这个框架
typescript 版本是 4.8.4 尝试升级到 5.4.5 还是没用
npm run dev 没有问题
npm run build 就会报这个错误
这个问题要怎么解决
arco-design 在打包编译时报错

第一次用这个框架
typescript 版本是 4.8.4 尝试升级到 5.4.5 还是没用
npm run dev 没有问题
npm run build 就会报这个错误
这个问题要怎么解决
下午好🌅🌅🌅
本答案参考通义千问
你遇到的问题是 Arco Design 在 TypeScript 项目中打包编译时报错,但 npm run dev 没问题,只有 npm run build 报错。这通常与 TypeScript 编译器的配置(tsconfig.json) 或 构建工具(如 Vite、Webpack 等) 的配置有关。
dev 模式下可能没有进行完整的类型检查,而 build 模式会强制执行类型检查。package.json 中的 typescript 依赖。建议使用 Arco Design 的最新稳定版本,比如
@arco-design/web-react@2.18.0或更高。
确保你的 tsconfig.json 文件包含以下关键配置:
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"strict": true,
"jsx": "react-jsx",
"esModuleInterop": true,
"skipLibCheck": true, // 忽略库文件的类型检查
"moduleResolution": "node",
"lib": ["DOM", "ESNext"],
"types": ["vite/client", "react", "react-dom"]
},
"include": ["src/**/*"]
}
重点说明:
skipLibCheck: true:跳过第三方库的类型检查,避免因第三方库类型不完整导致报错。types: 确保引入必要的类型定义(如 React 类型)。
如果你使用的是 Vite,请检查 vite.config.ts 是否有错误配置:
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
export default defineConfig({
plugins: [react()]
});
如果你使用的是 Webpack,请确保 ts-loader 或 babel-loader 配置正确,并且没有禁用类型检查。
确保你导入 Arco Design 组件的方式是正确的,例如:
import { Button } from '@arco-design/web-react';
而不是:
import Button from '@arco-design/web-react/Button';
注意: Arco Design 的组件是通过命名导出(named export)的方式提供的,不能直接导入默认导出。
有时候旧的缓存会导致构建错误,可以尝试以下命令:
rm -rf node_modules package-lock.json
npm install
然后重新运行:
npm run build
在 npm run build 时,TypeScript 会严格检查所有代码。你可以运行:
npx tsc --noEmit --watch
来查看是否有隐藏的类型错误或语法问题。
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"strict": true,
"jsx": "react-jsx",
"esModuleInterop": true,
"skipLibCheck": true,
"moduleResolution": "node",
"lib": ["DOM", "ESNext"],
"types": ["vite/client", "react", "react-dom"]
},
"include": ["src/**/*"]
}
| 问题 | 解决方案 |
|------|----------|
| TypeScript 版本不兼容 | 升级到 Arco Design 支持的版本 |
| 构建模式下类型检查错误 | 修改 tsconfig.json 添加 skipLibCheck |
| 导入方式错误 | 使用 import { Component } from '@arco-design/web-react' |
| 构建工具配置问题 | 检查 vite.config.ts 或 webpack.config.js |
| 缓存问题 | 清理 node_modules 并重新安装依赖 |
如果你能提供具体的错误信息(如控制台报错内容),我可以进一步帮你定位问题根源。