Проблема: Я построил библиотеку, в которой много структурированных папок .ts
. Теперь я хочу опубликовать эту библиотеку, но не хочу делиться с Source (файлы машинописи).
Попытка: Когда я запускаю команду tsc
, она генерирует файл .js
, соответствующий каждому файлу .ts
. Когда я сохраняю declaration: true
в моем файле tsconfig.json
, тогда tsc
также генерирует файл .d.ts
для каждого файла .ts
.
Задача: Все мои .js
файлы генерируются структурно, как и ожидалось, но .d.ts
также генерируется в параллельном расположении файла .js
. Теперь проблема заключается в том, как любой потребитель этой библиотеки будет импортировать типы, так как все они разбросаны по разным папкам, так как нет единственного .d.ts
файла, сгенерированного tsc
Я вижу много модулей в NPM (например, https://github.com/winstonjs/winston), который публикует один файл index.d.ts
, и потребитель импортирует их, чтобы использовать и использовать преимущество Typescript.
В настоящее время структура моего проекта выглядит следующим образом:
- my-project-root-directory
- src
- demo
- main.ts
- sample.ts
-lib
- constants
- some_constant_file1.ts
- models
- some_model_file1.ts
- some_model_file2.ts
- util
- some_util_file.ts
- dist
- demo
- main.js
- main.d.ts
- sample.js
- sample.d.ts
-lib
- constants
- some_constant_file1.js
- some_constant_file1.d.ts
- models
- some_model_file1.js
- some_model_file1.d.ts
- some_model_file2.js
- some_model_file2.d.ts
- util
- some_util_file.js
- some_util_file.d.ts
- logs
- package.json
- tsconfig.json
Очевидно, нет файла index.d.ts
, как я могу получить один файл? Правильно ли подходит один .d.ts
файл? Или я двигаюсь в неправильном направлении?
Я уже видел много ответов по stackoverflow и учебникам на youtube, каждый из которых показывает простой пример, в котором есть только один файл index.ts и файл index.d.ts, соответствующий ему. Но я не могу найти идеальный способ решить мою цель.
Спасибо за чтение моего вопроса, любая помощь приветствуется.