相关疑难解决方法(0)

无法在typescript中导入svg文件

typescript(*.tsx)文件中我无法使用以下语句导入svg文件:

import logo from './logo.svg';
Run Code Online (Sandbox Code Playgroud)

Transpiler说:[ts] cannot find module './logo.svg'. 我的svg文件只是<svg>...</svg>.

但是在.js文件中我能够导入它而没​​有任何问题与完全相同的import语句.我想这与svg文件的类型有关,必须以某种方式为ts transpiler设置.

你能否分享如何在ts文件中使用它?

svg typescript

71
推荐指数
12
解决办法
3万
查看次数

导入 svg 文件时打字稿找不到模块

它是使用 Typescript、React 和 webpack 创建的 Web 应用程序。我想通过 webpack 使用 svg 文件。然而,我得到了

    TS2307: Cannot find module '~/images/slide.svg'. 
Run Code Online (Sandbox Code Playgroud)

打字稿文件放在/frontend/src/,打字稿文件构建成功。

然后,我在网站上尝试了一些解决方案。但我无法解决这个问题。我的尝试简要描述如下。

我添加了一个文件,其中在“typeRoots”中定义了类型。配置文件

{
  "compilerOptions": {
    "outDir": "./app/assets/javascripts/bundles",
    "sourceMap": true,
    "allowJs": true,
    "allowSyntheticDefaultImports": true,
    "noImplicitAny": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "moduleResolution": "node",
    "module": "es2015",
    "target": "es6",
    "jsx": "react",
    "removeComments": true,
    "baseUrl": ".",
    "paths": {
      "~/*": ["./frontend/src/*"]
    },
    "typeRoots": ["types", "node_modules/@types"]
  },
  "awesomeTypescriptLoaderOptions": {
    "useCache": true,
    "cacheDirectory": "tmp/build_caches/awesome-typescript-loader"
  },
  "include": [
    "./frontend/src/*"
  ],
  "exclude": [
    "node_modules",
    "bundles",
    "**/*.js"
  ]
}
Run Code Online (Sandbox Code Playgroud)

类型/图像.d.ts

declare module '*.svg' { …
Run Code Online (Sandbox Code Playgroud)

svg typescript reactjs webpack webpack-file-loader

3
推荐指数
3
解决办法
1万
查看次数

标签 统计

svg ×2

typescript ×2

reactjs ×1

webpack ×1

webpack-file-loader ×1