машинопись не может найти модуль при импорте файла SVG - PullRequest
0 голосов
/ 06 ноября 2019

Это веб-приложение, созданное с помощью Typescript, React и webpack. Я хочу использовать файл SVG через веб-пакет. Однако я получил

    TS2307: Cannot find module '~/images/slide.svg'. 

Файлы машинописного текста помещены в / frontend / src /, а файлы машинописного текста успешно собраны.

Затем я попробовал некоторые решения на веб-сайте. Но я не смог решить эту проблему. То, что я пробовал, кратко описывается следующим образом.

Я добавил файл с определенными типами в typeRoots. tsconfig.json

{
  "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"
  ]
}

types / images.d.ts

declare module '*.svg' {
  const content: any;
  export default content;
}

Я использую 'file-loader' в веб-пакете для создания svg-файла.

Пожалуйста, помогитея !!

1 Ответ

1 голос
/ 06 ноября 2019

Я думаю, это из-за вашего раздела в конфигурации Typescript. Попробуйте это:

"include": [
  "./frontend/src/*/**"
],

В противном случае вы используете только те файлы, которые находятся в папке верхнего уровня src . И ваш svg печатный файл находится на подуровне, поэтому Typescript не будет его включать.

...