Модуль TS C es, экспортирующий файл .d.ts, попадает в сгенерированный javascript - PullRequest
0 голосов
/ 14 июля 2020

Предполагая, что я создаю библиотеку с именем foo-bar и объединяю все мои скрипты в src/index.ts для удобства, например:

export * from './foo'; // foo.tsx
export * from './bar'; // bar.tsx
export * from './definitions'; // definitions.d.ts

Сам definitions.d.ts содержит только интерфейсы for FooParams & BarParams (компоненты реакции);

export interface FooParams { ... }
export interface BarParams { ... }

Сгенерированный dist/index.js заканчивается следующим образом:

export * from './foo'; // foo.tsx
export * from './bar'; // bar.tsx
export * from './definitions'; // definitions.d.ts
//# sourceMappingURL=index.js.map

При попытке использовать эту библиотеку в другом узле проект (т.е. реагировать):

import React from 'react';
import {Foo} from 'foo-bar';

export const MyComponent = () => <Foo theme="black">Hi Foo!</Foo>

, он вызовет ошибку, аналогичную этой (т.е. если включить его в проект реагирования и запустить react-script start):

Failed to compile.

/path/to/node_modules/foo-bar/dist/index.js
Module not found: Can't resolve './definitions' in '/path/to/node_modules/foo-bar/dist/index.js'

Очевидно, потому что definitions.js нет, но это уже не важно.

Вопрос : Есть ли способ указать TS C не включать экспорт .d.ts файлов в сгенерированный javascript?

Ни один из параметров компилятора (tsconfig. json), похоже, не может создать это (Возможно, я чего-то упускаю).

Кто-нибудь знает, где вообще начать решать эту проблему, потому что Google не очень-то кооператив? Как только я набираю «сгенерированный javascript сохраняет экспорт .d.ts», я получаю те же 5 проблем с github и 5 вопросов о стеке, которые совершенно не помогают.

tsconfig.json Я использую:

{
  "compilerOptions": {
    "outDir": "./dist",
    "target": "es2015",
    "module": "esnext",
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true,
    "removeComments": false,
    "declaration": true,
    "sourceMap": true,
    "moduleResolution": "node",
    "jsx": "react",
    "lib": [
      "dom",
      "es7"
    ]
  },
  "include": [
    "./src"
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...