Всем привет!
Я достаточно продолжительное время занимался фронтенд-разработкой и накопил некоторое количество полезных знаний, которыми хочу поделиться.
Этот канал посвящён JavaScript и всему, что с ним связано.
Я достаточно продолжительное время занимался фронтенд-разработкой и накопил некоторое количество полезных знаний, которыми хочу поделиться.
Этот канал посвящён JavaScript и всему, что с ним связано.
🥰5
peerDependencies
При разработке библиотеки очень важно знать про поле peerDependecies в
Это поле позволяет установить требования для пользователя библиотеки.
Например, при разработке библиотеки React-компонентов в
Это позволяет избежать дубликатов.
#npm #peerDependencies
При разработке библиотеки очень важно знать про поле peerDependecies в
package.json
.Это поле позволяет установить требования для пользователя библиотеки.
Например, при разработке библиотеки React-компонентов в
peerDependencies
нужно указать React
(при этом подобрав максимально широкий диапазон версий), что будет означать, что пользователь библиотеки должен установить React
в свой проект самостоятельно (NPM >= 7 сделает это автоматически).Это позволяет избежать дубликатов.
#npm #peerDependencies
👍4
Вчера у меня отвалился интернет и я решил протестировать свою домашнюю инфраструктуру на состоятельность.
Выяснилось, что по умолчанию официальный Docker-образ registry ежедневно удаляет все загруженные образы из локального хранилища, что делает невозможным использование его как резервный докерхаб на случай отключения интернета.
К счастью это поведение выключается в конфигурации хранилища параметром uploadpurging.
#docker #selfHosted
Выяснилось, что по умолчанию официальный Docker-образ registry ежедневно удаляет все загруженные образы из локального хранилища, что делает невозможным использование его как резервный докерхаб на случай отключения интернета.
К счастью это поведение выключается в конфигурации хранилища параметром uploadpurging.
#docker #selfHosted
😱1
В продолжение темы домашней инфраструктуры: я поставил на свой домашний сервер Verdaccio — фактически это опенсорсный селф-хостед NPM репозиторий. Его я указал в домашнем
В целом можно запустить его в Docker-контейнере на своей машине, чтобы ускорить установку зависимостей за счёт проксирования с кешем, хотя вполне вероятно в данном случае более эффективным решением будет использовать кеш пакетного менеджера, чтобы не тратить ресурсы на сервер.
В условиях отсутствия интернета эта штука сработала только в ситуациях, когда не нужно резолвить зависимости (установка конкретной версии или из локфайла), так что для полного оффлайна, видимо, придётся немного поплясать с бубном...
#npm #selfHosted
.npmrc
, чтобы использовать как репозиторий по умолчанию.В целом можно запустить его в Docker-контейнере на своей машине, чтобы ускорить установку зависимостей за счёт проксирования с кешем, хотя вполне вероятно в данном случае более эффективным решением будет использовать кеш пакетного менеджера, чтобы не тратить ресурсы на сервер.
В условиях отсутствия интернета эта штука сработала только в ситуациях, когда не нужно резолвить зависимости (установка конкретной версии или из локфайла), так что для полного оффлайна, видимо, придётся немного поплясать с бубном...
#npm #selfHosted
@microsoft/api-extractor
Меня раздражают почти все потребительские продукты Microsoft, но то, что они делают для разработчиков, действительно воодушевляет.
Среди ассортимента крутых тулзов от них имеется api-extractor — утилита, которая, как следует из названия, "извлекает API" вашей библиотеки.
Под этим "извлечением" подразумевается сбор типов и комментариев в коде (для которых, кстати, разработана спецификация tsdoc) и формализация их в виде модели API библиотеки.
Возможно, звучит довольно скучно, но на практике эта модель позволяет без дополнительных телодвжений:
— упаковывать все
— валидировать публичный API библиотеки и централизованно следить за его изменениями, чтобы по более явным критериям определять наличие "breaking changes" при очередном релизе (с помощью автоматически генерируемого файла
— автоматически генерировать документацию по библиотеке (с помощью api-documenter);
— придумайте свой юзкейс.
Этот инструментарий уже зарекомендовал себя в опенсорс разработке и используется, например, в redux-toolkit.
#docs #tools #build
Меня раздражают почти все потребительские продукты Microsoft, но то, что они делают для разработчиков, действительно воодушевляет.
Среди ассортимента крутых тулзов от них имеется api-extractor — утилита, которая, как следует из названия, "извлекает API" вашей библиотеки.
Под этим "извлечением" подразумевается сбор типов и комментариев в коде (для которых, кстати, разработана спецификация tsdoc) и формализация их в виде модели API библиотеки.
Возможно, звучит довольно скучно, но на практике эта модель позволяет без дополнительных телодвжений:
— упаковывать все
*.d.ts
файлы в один общий index.d.ts
со всеми экспортируемыми типами;— валидировать публичный API библиотеки и централизованно следить за его изменениями, чтобы по более явным критериям определять наличие "breaking changes" при очередном релизе (с помощью автоматически генерируемого файла
api-report.md
, который попадает в пулл реквесты и тоже становится предметом обсуждения);— автоматически генерировать документацию по библиотеке (с помощью api-documenter);
— придумайте свой юзкейс.
Этот инструментарий уже зарекомендовал себя в опенсорс разработке и используется, например, в redux-toolkit.
#docs #tools #build
🔥3