2017-02-19 16 views
0

У меня есть проект NPM (назовем его «X»), который нажимает 15K строк. Testuite для проекта, вероятно, близок к линиям 4K. Все тесты находятся в тестовой папке. Я хотел бы избежать публикации тестового каталога в NPM, чтобы людям не приходилось устанавливать дополнительные строки кода 4K +. Это спасет дисковое пространство и сделает людей счастливыми, потому что я могу рекламировать меньшую площадь.Big NPM repo - нужно поставить большой testuite в отдельный проект?

Я думаю, что есть несколько вариантов:

  1. В прошлом я пытался удаляемого папки при нажатии освоить на Github и НПМ - это был контроль версий кошмар при попытке объединить исправления обратно в развитие (насколько мой опыт диктует). Я не думаю, что хочу вернуться к этому. Удаление тестового каталога при переходе на главную ветку может быть катастрофой.

  2. Я могу перенести тесты на совершенно другой проект NPM. Это кажется гораздо лучшей идеей. Однако я не уверен, как это сделать.

У кого-нибудь есть опыт с этим и есть ли хорошее решение? Может быть, третий способ?

+3

Добавить эту папку в .npmignore файл: https://docs.npmjs.com/misc/developers – Artur

ответ

3

Я бы порекомендовал вам хранить ваши тестовые примеры в одном хранилище, и вы все равно можете их хранить, не публикуя их до npm. Существует два способа сообщить npm, какие файлы следует публиковать:

Во-первых, вы можете добавить файлы и каталоги, которые вы хотите опубликовать, в "files" field из package.json. Например, если у вас есть каталог dist, где весь код, который вы хотите опубликовать (это часто бывает, если вы запускаете свой код через Babel, Typcript, minifier и т. Д.), Ваш package.json может выглядеть примерно так:

{ 
    ... 
    "files": [ 
    "dist" 
    ] 
} 

Файлы и каталоги, не входящие в этот список, не публикуются. Некоторые файлы, такие как package.json, README, CHANGELOG и LICENSE, всегда публикуются независимо от этой настройки.

Во-вторых, вы можете добавлять файлы и каталоги, которые вы сделать не хотите опубликовать в .npmignore file, который работает аналогично файлу .gitignore. Например, если вы (как в вашем случае) не хотят публиковать файлы в каталоге test/, файл .npmignore может выглядеть следующим образом:

test/ 

Опять же, файлы package.json, README, CHANGELOG и LICENSE будет всегда публикуются независимо от вашего файла .npmignore.

Какой из этих вариантов вы используете, зависит от вас и может быть более подходящим для разных структур проекта.

+0

спасибо, что это хорошее решение, я искал ответ вроде этого –