С сегодняшнего дня все пользователи npm могут использовать преимущество новой команды установки, называемой «npm ci». Команда предоставляет массивные улучшения в производительности и надёжности сборок для процессов непрерывной интеграции и непрерывного деплоя, предоставляя последовательный и быстрый опыт для разработчиков, использующих CI/CD в своей работе.
Что это за ботва такая?
npm ci проходит по файлу package.json для установки модулей из файла блокировки. Это позволяет создавать воспроизводимые сборки: вы получаете именно то, что ожидаете при каждой установке.
Ранее, разработчики, которые желали получить синхронизированные node_mobules и package.json, архивировали свою папку node_modules. npm ci заменяет этот процесс единственной командой.
Почему?
Это быстро.
npm ci быстрый — в некоторых случаях, в два раза быстрее npm i. Он предоставляет значительное увеличение производительности для всех разработчиков, использующих непрерывную интеграцию.
Эти увеличенные скорость и надежность сокращают время и способствуют лучшим практикам разработки. Это быстрее и проще для запуска тестов, разработчики могут запускать их чаще и активнее перехватывать ошибки.
npm ci обещает, что наибольшее преимущество получат большие команды. Возможность давать разработчикам «подписываться» на файл блокировки способствует более эффективной совместной работе в больших командах, и возможность установки именно того, что описано в файле блокировки, потенциально может сохранить десятки, если не тысячи, рабочих часов в месяц, позволяя командам тратить больше своего времени на создание и поддержку прекрасных вещей.
Это увеличивает надёжность
npm ci также предоставляет дополнительные варианты улучшения надёжности билдов вашего приложения. Как дополнительная инсталляционная команда, npm ci может быть использована для возвращения к изначальному состоянию, если npm i завершился с ошибкой, и наоборот. Это значительно снижает вероятность неудачной установки.
Как?
npm ci доступен сразу же после обновления на самую последнюю версию npm: выполните npm install -g npm@latest. Для больших подробностей о релизе обратитесь к логу изменений.
Что вы думаете?
Мы желаем знать как это работает для вас в том числе. Вопросы? Результаты? Хотите поделиться тем, что вы и ваша команда создали? Пишите нам.
Автор: Роман Ахмадуллин