Комментарии 8
Унес в закладки, спасибо! Удивляет реакция аудитории — видимо в шоке от возвращения мегамозга. Статья реально полезная, даже если для кого то и покажется очевидой.
+2
Читателей этой блогозаписи хочется лишний раз предупредить, что файл .npmignore используется утилитою npm не как дополнение к .gitignore, а как замена. Так что создавать .npmignore лучше всего копированием .gitignore с последующим доредактированием, а не то можно обнаружить в пакете много лишнего.
+5
Гораздо удобнее использовать поле files
в package.json
. Это white list того, что должно быть в пакете. Случайные залетные файлы туда не смогут попасть просто потому что вы забыли их внести в black list в .npmignore
.
+3
Мне психологически проще работать в таких обстоятельствах, когда приходится заносить ненужные файлы в black list, а не в таких обстоятельствах, когда приходится заносить нужные файлы в white list.
Почему проще?
Потому, что так меньше цена возможной ошибки.
Ведь если я позабуду занести ненужный файл в black list, то пакет всего лишь напрасно распухнет в объёме; но если я позабуду занести нужный файл в white list, то пакет вообще не будет корректно работать.
Почему проще?
Потому, что так меньше цена возможной ошибки.
Ведь если я позабуду занести ненужный файл в black list, то пакет всего лишь напрасно распухнет в объёме; но если я позабуду занести нужный файл в white list, то пакет вообще не будет корректно работать.
0
Именно, но к сожалению, уж очень много модулей в npm страдают этой болезнью. Мы например, релизим модули скриптом через отдельный бранч. Грубо говоря — создаём ветку release; удаляем из git-индекса всё; генерируем .gitignore с *
(ignore all), там же добавляем исключения для релизных файлов, часто это лишь lib/**
, readme.md
, package.json
, bower.json
; дибавляем всё в гит; пушим в ветку release; создаем тэг. Таким образом у нас и npm чист, и bower пакет чист, а также все git releases.
Вот перечень команд:
[
`npm run bump`,
`git commit -a -m "v${version}"`,
`git push origin master`,
`git checkout -B release`,
`npm run build`,
`npm run ignorefiles`,
`npm publish`,
`git rm -r --cached .`,
`git add -A`,
`git commit -a -m "v${version}"`,
`git push origin release -ff`,
`git tag v${version}`,
`git push --tags`,
`git checkout master -ff`
]
+1
НЛО прилетело и опубликовало эту надпись здесь
Поправь последний спойлер
0
Совсем недавно негодовал по этому поводу. Данную статью нужно читать всем кто хоть как-то связан с npm/node, а еще было-бы хорош видеть её на англ. языке.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Уменьшаем размер публикуемых npm модулей