Должны ли вводы быть зафиксированы? Если нет, как запустить установку типов при установке npm, не нарушая работу пользователей?

У меня есть пакет npm (X), который написан с помощью Typescript и использует типы, установленные с помощью типов.

Я не зафиксировал каталог typings, сгенерированный typings, потому что у меня есть typings.json, из которого инструмент typings может повторно сгенерировать этот каталог. Фактически, я добавил типизацию в качестве devDependency и скрипт npm «postinstall» для запуска «установки типизации», поэтому любые новые разработчики могут настроить все после запуска «npm install» при новой проверке.

Проблема в том, что этот пакет использует другой пакет (например, Y). Когда пользователь переходит к «npm install Y», он вытаскивает X, и на его машинах запускается скрипт «postinstall». Typings - это devDependency, поэтому он не загружается (и я не хочу, чтобы он был для них - они не разрабатывают на X). У них также нет глобально установленных типов, поэтому их установка ошибок Y исключена.

Какое правильное решение? Должен ли я фиксировать типизацию? Или есть другой сценарий жизненного цикла npm, который запускается только после установки, если выполняется «npm install» без аргументов? Или что-то другое?

Спасибо!


person justin    schedule 01.07.2016    source источник
comment
Связано: github.com/Microsoft/TypeScript/issues/9184   -  person Paleo    schedule 01.07.2016
comment
Привет Палео. Так что в настоящее время нет решения для этого? (и решение приходит с Typescript 2.0?). Если да, можете ли вы представить это как ответ, чтобы я мог закрыть этот вопрос. Спасибо   -  person justin    schedule 02.07.2016
comment
Извините, я не уверен в решении, я просто хотел сказать, что решение, вероятно, изменится в ближайшие недели.   -  person Paleo    schedule 02.07.2016
comment
Хорошо, спасибо в любом случае Палео   -  person justin    schedule 05.07.2016


Ответы (1)


Вам не нужно typings во время выполнения. Они используются только TypeScript в среде разработки. После того, как вы скомпилируете .ts в .js, typings больше не понадобится.

Итак, нет, не совершайте typings.

person Mihai Răducanu    schedule 01.07.2016
comment
Привет Михай. Я это понимаю, и это то, что я сейчас делаю. Есть ли способ автоматизировать загрузку типов с npm install для разработчиков, работающих над пакетом, но избежать этого для пользователей пакета? - person justin; 02.07.2016
comment
npm install --production --ignore-scripts то, что вы ищете? - person Mihai Răducanu; 03.07.2016
comment
Я так не думаю. Скорее всего, это так, как указал Палео. Будет правильное решение (без использования скриптов npm), когда типы Typescript будут рассматриваться как пакеты в npm (поскольку они затем могут быть перечислены как devDependencies). Но спасибо за эти флаги. Не знал о --ignore-scripts - person justin; 05.07.2016