Comments 8
Неплохой видео-гайд по теме: egghead.io/courses/how-to-write-an-open-source-javascript-library
+2
Хорошее руководство, несколько примечаний:
- tslint в скором времени обещают забросить в пользу typescript-eslint
- вместо standard-version зачастую хватает команды
npm version
+1
C tslint согласен. Хотя typescript'еры не очень охотно переводят на него свои проекты, рано или поздно придется. Кстати, вот здесь roadmap tslint на закрытие пакета в несколько стадий
В пункте про `standard-version` я хочу показать возможность решить вопросы о наименовании коммитов, ведении changelog-файла и версионировании разом.
В пункте про `standard-version` я хочу показать возможность решить вопросы о наименовании коммитов, ведении changelog-файла и версионировании разом.
npm version
в данном случае решает только третью задачу0
Хорошая статья. По своему опыту еще могу порекомендовать комбинацию semantic-release + commitizen для честного и прозрачного версионирования, хотя не всем такое по душе.
0
В github сейчас можно запросить бета-дотсуп к Actions (их CI) достаточно удобно
пример публикации пакета github.com/alexstep/universal-analytics/blob/master/.github/workflows/npmpublish.yml
пример публикации пакета github.com/alexstep/universal-analytics/blob/master/.github/workflows/npmpublish.yml
0
Классная статья! От себя добавлю еще markdown-toc — убодно для генерации оглавления в README.md.
0
Давайте еще воспользуемся npm-хуками и добавим postbuild скрипт, который будет копировать README.md в папку со сборкой. Так мы никогда не забудем обновить описание пакета на NPM.
Почему бы не добавить README.md и папку со сборкой в секцию files
в package.json
?
И еще вопрос: кто или что в итоге вызывает npm-скрипт release
? По идее, он должен вызываться при merge в master-ветку?
0
Привет!
Мне нравится, что мы можем положить в npm не только необходимые файлы, но и оставить в этих файлах только самое необходимое. `files` в `package.json` будет достаточно для обычной JS библиотеки. Если взять, например, Angular Workspace с библиотекой, то там создание отдельной папки для публикации просто необходимо, потому что мы передаем в npm иной `package.json` — очищенный от зависимостей и информации, которые не относятся к финальной либе
Да, вызов release остался открытым. Если проект будет развиваться, то стоит настроить авторелиз release-веток
Мне нравится, что мы можем положить в npm не только необходимые файлы, но и оставить в этих файлах только самое необходимое. `files` в `package.json` будет достаточно для обычной JS библиотеки. Если взять, например, Angular Workspace с библиотекой, то там создание отдельной папки для публикации просто необходимо, потому что мы передаем в npm иной `package.json` — очищенный от зависимостей и информации, которые не относятся к финальной либе
Да, вызов release остался открытым. Если проект будет развиваться, то стоит настроить авторелиз release-веток
0
Sign up to leave a comment.
Как заопенсорсить npm-пакет с нормальным деплоем, CI и демо (без потери радости к жизни)