umi4.0使用svgr/webpack,怎么在config.ts里配置
时间: 2025-02-09 12:14:58 浏览: 91
UMI(统一前端管理器)是一个基于React的JavaScript框架,用于构建高性能、模块化的单页面应用。随着版本更新,UMI 4.0引入了新的技术栈,如SVG图标管理和Webpack处理。要使用`svgr`和`webpack`来管理SVG图标并在`umi.config.ts`中配置,你可以按照以下步骤操作:
首先,确保安装必要的依赖:
```bash
npm install @antv/svgo svgr webpack-contrib-svg-loader
```
然后,在`umi.config.ts`文件中,添加以下配置:
```typescript
import { defineConfig } from 'umi';
import { path } from '@umijs/config';
// ...其他默认配置
export default defineConfig({
alias: {
// 配置svg图标路径别名,这样可以在代码中直接 import svg
'@svg': path.resolve('src/icons'),
},
chainWebpack(config) {
// 添加SVG loader到Webpack的规则
config.module.rule('svg').test(/\.svg$/).use('svg-loader')
.loader('svg-loader')
.options({ svgo: { plugins: [{ removeViewBox: false }] } })
.end()
.include.add(path.resolve(__dirname, 'src/icons'))
.add(path.resolve(__dirname, 'node_modules/@antv/svgo'))
.end();
config.module.rule('svgr')
.test(/\.(svg|json)$/)
.exclude.add(path.resolve(__dirname, 'node_modules'))
.use('svgr-loader')
.loader('@svgr/webpack')
.options({
// 如果你的SVG图标需要转换或优化,请在这里设置相应的选项
template: require.resolve('@antv/svgo-template-react'), // 可选,使用AntV的模板
jsx: true,
});
},
});
// ...其他配置
```
这个配置会告诉Webpack如何加载`.svg`文件,并通过`svgr-loader`将SVG图标转换为React组件或JSON数据。记得替换`@svg`别名为你实际存放SVG图标的路径。
相关问题:
1. UMI 4.0中的`chainWebpack`方法是做什么用的?
2. `alias`配置的作用是什么?
3. 如何在UMI中导入和使用svgr转换后的SVG组件?
阅读全文
相关推荐


















