В вашем tsconfig.json
у вас установлено "declarations": true
. Предполагается, что он должен быть "declaration": true
. И поле exclude
должно находиться за пределами compilerOptions
. Также вы указываете, что типы должны быть включены от index.d.ts
, когда на самом деле такого файла нет. https://www.typescriptlang.org/docs/handbook/compiler-options.html https://www.typescriptlang.org/docs/handbook/tsconfig-json.html.
Теперь, чтобы сгенерировать модуль, выполните следующие шаги.
Напишите код для всех утилит, которые вы хотите открыть из своего модуля. то есть все объекты, которые должны быть «импортированы» из вашего модуля.
После выполнения вышеуказанного шага сделайте файл в src (Предположим, src - ваш rootDir
), называемый index.tsx, или любое другое имя по вашему выбору. В этом файле экспортируйте объекты, которые вы хотите открыть.
Далее, в вашем пакете.json добавить "main": "<outDir>/index.js"
и "typings": <outDir>/index.d.ts
. Обязательно замените <outDir>
на ваш выходной каталог от tsconfig
. Поле main
используется, чтобы сообщить установочному приложению, куда импортировать, когда этот модуль ссылается. Например, если установка приложения выполняет следующую строку кода
import {abc} from 'swagger-client'
main
расскажет узел искать abc
внутри файла "<outDir>/index.js"
.
Поле typings
- это только эквивалент машинописного текста main
, то есть он указывает узлу, где искать типы abc
в приведенном выше примере.
Также обратите внимание на расширения файлов, которые будут упомянуты в полях main
и typings
. Они не ts. По эмпирическому правилу вы не должны публиковать файлы .ts
в npm. Всегда передавайте файлы .ts
в github и публикуйте созданные файлы .js
, .d.ts
в npm. Очевидной причиной этого является то, что, совершая созданные файлы, модуль можно использовать в проектах js, а также в проектах ts.
Какие у вас проблемы? .. Где вы застреваете? –
Я не могу сгенерировать d.ts-файлы, и мне нужно установить '' declarations: true '' и 'types: [" index.d.ts "]'. Тем не менее, создается любой артефакт. Я добавил изменения в репозиторий. – Jordi