Next 整合 svg 处理库
ps:svgr 直接允许将 svg 文件用作组件
直接调用
依赖:
- Next: 14.2.13
- @svgr/webpack: 8.1.0
使用步骤:
保存 svg 文件到项目目录中
安装依赖
pnpm install @svgr/webpack
配置
next.config.js
:/** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: false, experimental: { turbo: { rules: { '*.svg': { loaders: ['@svgr/webpack'], as: '*.js', } } } }, webpack(config) { // SVG 处理规则 const fileLoaderRule = config.module.rules.find((rule) => rule.test?.test?.('.svg'), ) config.module.rules.push( { ...fileLoaderRule, test: /\.svg$/i, resourceQuery: /url/, }, { test: /\.svg$/i, issuer: fileLoaderRule.issuer, resourceQuery: { not: [...fileLoaderRule.resourceQuery.not, /url/] }, use: ['@svgr/webpack'], } ) fileLoaderRule.exclude = /\.svg$/i return config } } module.exports = nextConfig
导入 svg 文件:
import Icon from './Icon.svg'; const MyComponent = () => { return ( <div> <Icon width={50} height={50} /> </div> ); };
即可使用