Структура модуля TypeScript в JS с Webpack - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь опубликовать библиотеку TypeScript с помощью веб-пакета и со структурой папок, например:

src/
    module1/
        some-class.ts
        index.ts
    module2/
        some-other-class.ts
        index.ts
    etc/

При использовании в TS я должен иметь возможность:

import { SomeClass } from 'my-library/module1';

И при использовании require, должен быть в состоянии сделать:

const SomeClass = require('my-library/module1');

Webpack нуждается в записи (или нескольких записях) и выводит файлы, соответствующие этим записям.Тем не менее, я вижу, что определение записей для каждой вложенной папки очень непрактично, а также я не знаю, как сделать глубокие вложенные записи, такие как require('my-library/module1/submodule1/etc').

Кроме того, автор, созданный таким образом, может не соответствовать файлам dts, выводимым ts-loader.

Что мне здесь не хватает?Есть ли способ заставить веб-пакет копировать структуру модуля исходных текстов TS?

Я использую не тот инструмент?

Если да, что люди используют для объединения библиотек?

1 Ответ

0 голосов
/ 11 февраля 2019

Я думаю, что вы можете просто создать файл index.ts в вашем каталоге верхнего уровня src / и экспортировать все подпапки оттуда, например export * from 'module1';

А когда вы создаете новый модуль, вам просто нужно добавитьновая строка для экспорта правильного каталога.

Если вы хотите экспортировать что-то из верхнего уровня, которое на самом деле находится глубже внутри модуля, вы можете использовать следующий синтаксис export { myFunc } from './module1/nested/myFunc';

В этом случае вы можете использовать require('myLibrary/myFunc') вместо require('myLibrary/module1/nested/myFunc')

Редактировать: Как указывает @Dehli, эти индексные файлы называются бочонками (https://basarat.gitbooks.io/typescript/docs/tips/barrel.html)

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