Comments 10
Все хорошо, полезное улучшение. Но непонятно, почему так много времени понадобилось для реализации такой простой идеи — устанавливать модули по package-lock.json, невзирая package.json.
Складывается впечатление, что сами разработчики npm своим детищем не особо пользуются, и хорошим практикам ci не следуют
Там дело в том, что команда npm i
изменяла существующий package-lock.json
на новый, как написано в док-ции к этому файлу:
package-lock.json is automatically generated for any operations where npm modifies either the node_modules tree, or package.json.
Теперь у нас есть команда npm ci
, которая не будет изменять этот файл, обновляя зависимости проекта на самые последние, вместо этого он будет устанавливать строго то, что содержится в этом файле.
Более подробно об особенностях npm ci
можно, опять же, почитать в документации к этому методу.
Наверное, хорошо было бы немного прояснить этот момент в документации, да, ибо я согласен, что это немного сбивает с толку.
Проект открытый, создайте ишью, отправьте пул реквест, создайте свой собственный менеджер пакетов, вам никто ничего не должен из разрабов npm'а, они вроде добровольно всем занимаются. Впрочем, всего этого даже не надо делать: yarn сейчас наиболее близок к composer'у, поэтому если есть желание — можно использовать просто его.
Там дело в том, что команда npm i изменяла существующий package-lock.json на новый
npm install --no-save
И получаем на выходе
npm ci
.Или я по прежнему не понимаю зачем это все.
Представляем «npm ci» для быстрых и более надёжных сборок