Как игнорировать файлы из вашего пакета npm
Вы можете решить, какие файлы люди получат при загрузке вашего пакета, тремя способами:
- С
.gitignore
файл - С
.npmignore
файл - С
files
имущество
Мы рассмотрим каждый метод и обсудим, какие методы вам следует (или не следует) использовать.
Исключение файлов с помощью gitignore
Сначала npm проверит ваш репозиторий на наличие .gitignore
файл. если есть .gitignore
файла, npm будет игнорировать файлы в соответствии с тем, что указано в .gitignore
файл.
Это наиболее распространенный способ, с помощью которого авторы пакетов предотвращают загрузку дополнительных файлов.
Давайте рассмотрим простой пример. Скажем, у вас есть следующая структура каталогов.
- project-name/
|- index.js
|- package.json
|- node_modules/
Допустим, вы не хотите, чтобы люди загружали node_modules
папка. Вы также не хотите сохранять node_modules
в репозитории Git.
Что вы будете делать, это создать .gitignore
файл.
# .gitignore
node_modules
В этом случае и Git, и npm игнорируют node_modules
папка.
Добавление файлов в черный список с помощью npmignore
Второй способ — внести файлы в черный список с .npmignore
файл. .npmignore
файл работает так же, как .gitignore
файл. Если файл указан в списке .npmignore
файл, файл будет исключен из пакета.
Важная заметка: Если у тебя есть .npmignore
файл, npm будет использовать .npmignore
файл. npm будет игнорировать .gitignore
файл вообще. (Многие разработчики ошибочно полагают, что npm будет использовать оба .npmignore
а также .gitignore
файлы. Не совершайте ту же ошибку!).
Вы можете использовать этот метод, если хотите исключить файлы из пакета, но оставить их в репозитории Git.
Давайте рассмотрим еще один пример. Допустим, вы написали тесты для своего пакета и поместили их все в tests
папка. Это ваша структура каталогов:
- project-name/
|- index.js
|- package.json
|- node_modules/
|- tests/
Вы хотите исключить node_modules
как из вашего репозитория Git, так и из вашего пакета.
Вы хотите включить tests
в вашем репозитории Git, но исключите его из пакета.
Если вы выберете npmignore
файловый метод, вы можете записать их в свой .gitignore
а также .npmignore
файлы:
# .gitignore
node_modules
# .npmignore
node_modules
tests
Добавление файлов в белый список с помощью свойства files
Третий метод состоит в том, чтобы белый список файлы, которыми вы хотите быть включены в package.json
файл, под files
имущество.
Примечание. npm отдает приоритет этому методу по сравнению с другими методами, упомянутыми выше. Это самый простой способ ограничить количество загружаемых файлов другими пользователями.
Этот подход довольно прост. Что вам нужно, так это создать files
имущество в package.json
файл. Затем укажите список файлов, которые вы хотите включить.
Вот пример:
{
"files": [
"index.js"
]
}
Примечание. Некоторые файлы, например package.json
является всегда включен в упаковке. Вам не нужно записывать эти файлы в files
имущество.
Какой метод использовать?
Все три метода работают. Выберите тот, который вам наиболее удобен. Для простых проектов .gitignore
файлового метода должно быть достаточно.
Если ваш проект более продвинутый, вы можете захотеть внести файлы в черный список с помощью .npmignore
или белый список файлов с files
имущество. Выбери один. Нет необходимости в обоих.
Быстрый совет
Вы можете использовать npm pack
для создания пакета. Этот пакет включает в себя файлы, которые получат другие люди.
npm pack
Попытайся!
Спасибо за чтение. Эта статья изначально была размещена на мой блог. Подписаться на моя рассылка если вы хотите больше статей, которые помогут вам стать лучшим разработчиком внешнего интерфейса.