如何使用 Parcel 2 在 React 中使用 SVG 内联?

Posted

技术标签:

【中文标题】如何使用 Parcel 2 在 React 中使用 SVG 内联?【英文标题】:How do you use an SVG inline in React using Parcel 2? 【发布时间】:2020-09-08 16:48:44 【问题描述】:

以前在 Parcel v1 中,您可以使用类似 @svgr/parcel-plugin-svgr 的 Parcel 插件。这将使您能够像使用 CRA 一样使用内联 SVG:

import Star from './star.svg'

const App = () => (
  <div>
    <Star />
  </div>
)

任何人都可以帮助找出在 Parcel 2 中执行此操作的方法吗?

【问题讨论】:

你试过了吗? v2.parceljs.org/getting-started/migration/… 【参考方案1】:

Parcel2 提供了@parcel/transformer-svg-react 插件来完成此操作。

这是你需要做的:

    安装它:

    yarn add @parcel/transformer-svg-react --dev
    

    在项目的根目录中添加一个.parcelrc 文件,该文件定义了一个使用此插件的命名管道:

    
      "extends": "@parcel/config-default",
      "transformers": 
        "jsx:*.svg": ["...", "@parcel/transformer-svg-react"]
      
    
    

    "..." 条目实际上应该输入到 .parcelrc 文件中 - 它告诉 parcel “像往常一样处理这些类型的资产,只有在完成后,才将其转换为反应组件。”)

    在导入语句中使用命名管道:

    import Star from 'jsx:./star.svg'
    
    const App = () => (
      <div>
        <Star />
      </div>
    )
    

见parcel 2 documentation。

【讨论】:

以上是关于如何使用 Parcel 2 在 React 中使用 SVG 内联?的主要内容,如果未能解决你的问题,请参考以下文章

Parcel Bundler 和 React 服务器端渲染

我的代码框上带有 react & parcel 的“目标容器不是 DOM 元素”错误

parcel打包react

如何在 Parcel 中使用 jQuery UI

如何将 jQuery 和 jQuery-ui 与 Parcel(捆绑器)一起使用?

使用 Parcel 从 node_modules 导入 CSS