我试图在NextJS项目中导入svg,每次我得到这个错误
./assets/aboutimg.svg 1:0
Module parse failed: Unexpected token (1:0)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="578" height="1028" viewBox="0 0 578 1028">
| <image id="_64538565_2370063099695596_8091233071539421184_n" data-name="64538565_2370063099695596_8091233071539421184_n" width="578" height="1028" xlink:href="
我试过使用next-images和svgr。我将把我的About.js代码粘贴在下面,如果有人能让我知道我做错了什么,那就太好了。
import LayoutNoLogo from '../comps/LayoutNoLogo'
import AboutImg from '../assets/aboutimg.svg'
const About = () => {
return (
<LayoutNoLogo>
<div className="row">
<div className="column-1">
<img src={AboutImg} />
</div>
<div className="column-2">
<h1>About</h1>
</div>
</div>
<style jsx>{`
`}</style>
</LayoutNoLogo>
)
}
export default About;
3条答案
按热度按时间py49o6xq1#
我终于在我的项目中使用了
file-loader
来使用SVG图像。1.安装webpack和file loader:
yarn add webpack
、yarn add file-loader -D
1.在
next.config.js
中:1.现在我可以使用
import img from '../assets/image.svg'
hujrc8aj2#
使用next-images并添加正确的模块导出允许我使用所有文件类型的图像。
https://www.npmjs.com/package/next-images
kiz8lqtg3#
使用nextjs13测试解决方案
1.安装加载程序:
yarn add @svgr/webpack
1.更新
next.config.js
检查fill prop(attribute)(svg,path等)并将所有值替换为
currentColor
以扩展当前文本颜色(来自css)。你也可以从子标签中删除所有填充属性,并从父svg中扩展它。CSS:
我更喜欢在组件中动态导入图标:
你也可以直接导入svg组件: