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

标签 reactjs svg parceljs

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

import Star from './star.svg'

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

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

最佳答案

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 文件中 - 它告诉包裹“像往常一样处理这些类型的 Assets ,只有在完成之后,才将其转换为 react 组件。”)
  • 在导入语句中使用命名管道:
    import Star from 'jsx:./star.svg'
    
    const App = () => (
      <div>
        <Star />
      </div>
    )
    

  • parcel 2 documentation .

    关于reactjs - 您如何使用 Parcel 2 在 React 中使用内联 SVG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61944964/

    相关文章:

    javascript - 使用 this.refs 的弃用警告

    javascript - 使用这些动态输入处理 React 中的状态

    svg - 拖动 svg 元素时 d3 拖动行为出现故障

    android:load svg file from web and show it on image view

    javascript - 简单的 SVG 网格在 IE 10 和 IE 11 中不显示

    reactjs - 为什么我在启动 React 应用程序时收到错误 "[Error: std::bad_alloc]"?

    reactjs - 包裹 : using separate SCSS files for each React component, 但带有变量文件

    google-chrome - 本地托管的 HTTPS 站点在 Chrome 中出现有关 websocket 的错误(使用 ParcelJS bundle 时)

    reactjs - 使用 pm2 在服务器上运行 React 构建

    javascript - 使用 API 中的对象数组作为 JSON 进行 d3 可视化时出现问题