2016-11-28 4 views
0

Я разрабатываю модуль npm. Этот модуль использует Angular2 и TypeScript 2.Создание модуля npm из файлов машинописных файлов

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

Я не знаю, какие шаги я должен будет выполнить для создания этого модуля npm.

Я создал public repository on github.

Что мне нужно для создания модуля npm?

+0

Какие у вас проблемы? .. Где вы застреваете? –

+0

Я не могу сгенерировать d.ts-файлы, и мне нужно установить '' declarations: true '' и 'types: [" index.d.ts "]'. Тем не менее, создается любой артефакт. Я добавил изменения в репозиторий. – Jordi

ответ

1

В вашем 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.

+0

Я только что изменил его. Он продолжает генерировать что угодно. Какую команду вы используете для создания артефактов? – Jordi

+0

Im использует 'tsc', и он продолжает жаловаться, потому что ваш tsconfig неверен.После исправления tsconfig. файлы .d.ts, кажется, сгенерированы правильно –

+0

Что вы подразумеваете под этим, что-то генерирует? –