kuraga333
@kuraga333
Программист, аналитик

Что включать в NPM-пакет, что оставлять в репозитории?

Что включать в NPM-пакет, что оставлять в репозитории?
Допустим, библиотека написана на ES2015 + TypeScript и является изоморфной.
Единого подхода я не нашел за год наблюдения, поэтому предлагается дискуссия:

  1. Включать ли в NPM-пакет исходные (ES2015 + TypeScript) файлы?
  2. Включать ли в NPM-пакет откомпилированные файлы? Если да, то какие? Browserify-бандл, CommonJS (ES5.1)-файлы, ES2015-файлы?
  3. Включать ли в NPM-пакет тесты?
  4. Хранить ли в репозитории откомпилированные файлы?
  5. Корнем NPM-пакета считать корень репозитория или создать директорию package?
  6. Включать ли в NPM-пакет такие вещи, как примеры?


Спасибо!
  • Вопрос задан
  • 431 просмотр
Решения вопроса 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
1. Включать. Если проект сразу на ES6, зачем мне импортить ES6 скомпиленный в ES5? И tree-shake не сработает...
2. CommonJS. Кому надо ES6-модули — см. пункт 1. bundle потребитель пакета сделает сам.
3. Тесты — неплохой источник информации на тему «а как оно должно работать-то, и как его вызывать вообще». Но можно не включать, но тогда лучше написать в readme.md, мол, «дополнительные примеры см. в test/ в репо».
4. Нет особого смысла. prepublish решает задачу «не забыть скомпилить перед публикацией».
5. Зачем? Придется вручную или в prepublish-скрипте в эту директорию все нужное копировать, лишняя работа.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
27cm
@27cm
TODO: Написать статус
Что мешает посмотреть, что прописывают в .npmignore создатели популярных NPM-пакетов?
Ответ написан
sim3x
@sim3x
1 +
2 - (в зависимости пакета пропиши, что нужно установить, чтоб пакет работал)
3 +
4 -
5 корень репо

пример
https://github.com/sass/node-sass
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы