Установите ту же версию узла на основе движков, указанных в package.json, для задач разработки и развертывания.
Что я часто замечаю в проектах узлов, так это то, что вы быстро добираетесь до точки, где определена версия, относящаяся к проекту, и ее необходимо поддерживать в разных местах, например. различные шаблоны пайплайнов.
В идеале, однако, я хотел бы поддерживать версию узла только в одном месте и, таким образом, в то же время гарантировать, что все разработчики используют одну и ту же версию узла, которая также используется автоматизацией CI/CD проекта.
Мы рассмотрим один из возможных подходов к достижению этой цели прямо сейчас!
Применение определенных версий node и npm
Прежде всего, если вы хотите определить определенные версии node и npm для использования в вашем проекте узла, то есть возможность добавить их в package.json с помощью параметра «движки».
Кроме того, если вы хотите строго соблюдать указанные версии по определенным причинам, вы можете сделать это, создав в проекте файл .npmrc со следующими настройками:
Использование одной и той же версии узла в автоматизации CI/CD
После того, как версия узла была определена с помощью параметра «движки» в package.json, теперь в идеале она также должна использоваться конвейерами CI/CD. Для этого нам нужно прочитать соответствующую информацию из этого файла.
Все, что нам нужно сделать, это написать небольшой скрипт, который сохраняет версию в переменной. Конечно, есть разные способы добиться этого. Для чтения версии мы в данном случае используем jq, процессор командной строки JSON.
Ниже приведены два примера соответствующих задач в GitHub Actions и Azure Pipelines, но, конечно, этот подход работает одинаково и для любого другого поставщика:
Заключение
Лично я нахожу показанный подход довольно удобным и использую его также для всех своих личных проектов на GitHub. Конечно, я понимаю, что определенно есть проекты, в которых требуется использование разных версий узлов, и поэтому показанный здесь подход неприменим.