Как упаковать компоненты TypeScript React с SASS для NPM - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь упаковать компоненты React, написанные на TypeScript, которые импортируют файлы SASS и SVG. Без этих файлов SASS и SVG упаковка кажется очень простой. Но с ними tsc компилятор выдает ошибку. Вот что я делаю:

tsconfig. json:

{
  "compilerOptions": {
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext"],
    "declaration": true,
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": false,
    "noImplicitAny": false,
    "jsx": "react",
    "sourceMap": true,
    "outDir": ""
  },
  "include": ["src/components"]
}

Один пример компонента в папке src/components:

import React from 'react';
import MuiAlert, { AlertProps } from '@material-ui/lab/Alert';
import styles from './Alert.module.scss';

function Alert(props: AlertProps) {
  const alertProps = {
    classes: {
      standardSuccess: styles['success'],
      standardWarning: styles['warning'],
      standardError: styles['error'],
      standardInfo: styles['info'],
      icon: styles['icon'],
    },
    ...props,
  };

  return <MuiAlert {...alertProps}>{props.children}</MuiAlert>;
}

export default Alert;

Я запускаю этот :

tsc --project tsconfig.json

И я получаю сообщение об ошибке, даже если файл существует

Cannot find module './Alert.module.scss'.

Я понимаю, что проблема в том, что компилятор TypeScript не может обрабатывать другие файлы TS, но как я могу скомпилировать Файлы TS, которые импортируют файлы SASS и SVG? Я пытался найти решение этой проблемы, но не мог найти что-либо из машинописных документов или где-либо еще.

Я почти уверен, что есть простое решение для этого, но не смог понять это. Заранее спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...