Parcel-Bundler 如何像 React 一样添加 SVG

Lpc*_*ark 5 browser svg single-page-application reactjs parceljs

我正在使用带有 typescript 的 Parcel,开箱即用,一切正常,现在当我尝试包含 svg 时,它不起作用,

这是因为我需要更改打字稿

declare module "*.svg"
Run Code Online (Sandbox Code Playgroud)

这使我现在可以编译我的打字稿。

现在另一件事不起作用是现在我想导入我的 SVG 组件并像 create-react-app 2 一样使用它

从“./icon.svg”导入图标

function DisplayIcon(){
   return <Icon/>
}
Run Code Online (Sandbox Code Playgroud)

所以这看起来很简单 https://www.npmjs.com/package/@svgr/parcel-plugin-svgr yarn install ,我得到 Can'tsolve

 <Typescript file>:<Line>:<Column>: Cannot resolve dependency './icon.svg' at '<Icon Location>'
Run Code Online (Sandbox Code Playgroud)

所以我想也许是插件的问题,我尝试使用

https://www.npmjs.com/package/parcel-plugin-inlinesvg

我也遇到同样的问题。

我缺少什么?

我看到有些人有 .babelrc 文件,但插件应该至少能解决文档所说的问题。

在 Parcel 中使用插件再简单不过了。您所需要做的就是安装并将它们保存在 package.json 中。插件应使用前缀parcel-plugin- 或@your-scope/parcel-plugin- 命名,例如parcel-plugin-foo 或@your-scope/parcel-plugin-foo。package.json 中列出的具有这些前缀的任何依赖项都将在初始化期间自动加载。

插件似乎启动了,但没有任何作用。

如果没有插件,我会在公共路径中获取该文件,并在 JavaScript 运行时中获取一个字符串。

我错过了什么以及我做错了什么?