установить определение @types из fork - PullRequest
0 голосов
/ 04 июля 2018

Контекст

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

Это изменение не должно быть объединено, так как это всего лишь временное решение.

Вопрос

Как мне установить это индивидуальное определение типа через npm или yarn?

Проблемы

  • Я не могу просто установить ветку, так как она установит всю Определенно типо репо вместо просто библиотеки.
  • В идеале мне бы хотелось, чтобы он был установлен таким же образом, как и определения типов по умолчанию, поэтому дополнительная (глобальная) настройка не требуется.

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

Это может быть длительный процесс, но выполнимый (насколько мне известно).

Используйте проект types-publisher . Запущенный вручную раздел в файле Readme описывает шаги, которые необходимо выполнить.

Следующих шагов, указанных в Readme, должно быть достаточно для создания и публикации пакета в вашей учетной записи npm:

  1. Обновление локального репозитория DefiniteTyped
  2. Разобрать определения
  3. Рассчитать версии
  4. Создание пакетов на диске
  5. Публикация пакетов на диске
  6. Опубликовать реестр

В файле settings.json значение scopeName равно npm имени пользователя.

Пакет можно использовать как npm i @username/package-name

0 голосов
/ 05 ноября 2018

Если это просто временно, как вы говорите (или, может быть, очень специфический вариант использования), то, вероятно, имеет смысл просто скопировать определения модифицированных типов в репозиторий вашего проекта. Затем вы можете ссылаться на эти определения так же, как и на любые пользовательские наборы (см. мой другой ответ для получения инструкций).

0 голосов
/ 01 ноября 2018

AFAIK, одношагового решения не существует, потому что npm и yarn не поддерживают установку непосредственно из подкаталога репозитория git. См. Вопросы для npm (возможно, есть более новый) и пряжа и предыдущие вопросы о переполнении стека, включая этот . (Если ваш репозиторий размещен в службе, предлагающей URL-адрес для загрузки архива из подкаталога репозитория, вы можете попробовать запустить npm install для этого URL; я не использовал этот подход.)

Я предлагаю вам использовать Braid (раскрытие: я участник Braid), чтобы скопировать подкаталог вилки DefintelyTyped в подкаталог вашего проекта и затем запустить npm install (или yarn add) на этот подкаталог. npm или yarn создаст символическую ссылку из соответствующего местоположения в node_modules на подкаталог, поэтому TypeScript найдет объявления типов без дополнительной настройки. Поскольку репозиторий DefiniteTyped не содержит полнофункциональных файлов package.json для пакетов отдельных типов, вам, вероятно, потребуется создать файл package.json в локальном подкаталоге или добавить в него недостающие поля перед запуском npm install. (Вы можете просто оставить это изменение в качестве нижестоящего изменения для зеркала Braid.)

Единственный недостаток, который я вижу в этом решении, заключается в том, что оно создает копию пакета типов в нижестоящем репозитории, который будет постоянно занимать некоторое место в репозитории. (И Braid скопирует всю историю DefinitiveTyped в ваш локальный клон нижестоящего репозитория, но это пространство может быть восстановлено сборщиком мусора.)

...