## задний план
Node.js прост и удобен для начала работы. Но в нем также не хватает многих спецификаций, а уровень пользователей неравномерный.
Вопрос, который я часто вижу в последнее время:很多新手,在部署的时候,是直接在服务器上 npm install
, это действительноНе рекомендуетсяиз.
## Существующие проблемы
1. Невозможно определить уникальность
Поскольку установка занимает много времени в большой сети, поэтомуВы даже не можете гарантировать случай кластера, на двух серверахnpm install
Пакет, который пришел, был точно таким же.
Если библиотека только что обновилась и в ней есть ошибка, вам просто интересно:Есть определенная вероятность возникновения проблемы. Это как умереть, чтобы расследовать.
Конечно, чтобы решить эту проблему, многие люди выбирают решение «версия блокировки».
Студенты в области комментариев, не беспокойтесь, прочитайте пункт 2 ниже, даже если заблокированная версия установлена на CI вместо сервера.
Учитывая, что «версия блокировки» принадлежит"Проблема велосипеда дерьмового цвета", не хочу здесь обсуждать.
Смотрите наши взгляды на:«Знай колонку - Мертвая лошадь: почему бы мне не использовать термоусадочную пленку (замок)».
2. Долго выходит в интернет и быстро не откатывается
После того, как я вышел в интернет, я обнаружил онлайн-ошибку, и когда я хотел быстро откатиться, чтобы остановить кровотечение, я был ошеломлен:
- Нужно дождаться установки зависимостей, на случай джиттера в сети,Правильная ошибка P4 становится ошибкой P0., премия в конце года исчезла.
- Если проблема вызвана базовыми зависимостями, откат бесполезен.
-
npm cache
Это не может решить проблему, например, когда машина расширяется.
## Рекомендуемые решения
其中,关键点是:在构建期就把依赖打包进去。
преимущество:
- Его можно запустить сразу после распаковки, не дожидаясь сетевого времени.
- Можно гарантировать, что его можно запустить, потому что зависимости определяются и гарантируются модульным тестом CI.
- Его можно быстро откатить, чтобы остановить кровотечение.
- Способ упаковки может быть tar или docker. (рекомендуется последний)
недостаток:
- Сумка громоздкая (но на самом деле хранение не стоит денег...)
Изображение выше используетсяPlantUMLРисование в Yuque, если вы хотите использовать возможности Markdown для рисования блок-схем, используйте PlantUML
## Как реализовать?
Тогда некоторые студенты спросят: я небольшая компания, в отличие от вас, у которой есть эта инфраструктура для обслуживания, что мне делать?
На самом деле, стоимость очень низкая:
- Репозиторий кода GitLab поставляется с CI, вам нужно только написать файл конфигурации, чтобы запустить автоматическую сборку. (или Дженкинс)
- Затем сохраните созданные файлы в таком месте, как OSS.
- Если сервер развернут, лучше всего иметь систему выпуска операций и обслуживания.Если нет, напишите оболочку для загрузки и распаковки файла OSS.
- Конечно, многие облачные сервисы поддерживают образы Docker, что проще.
## Рекламная площадка
- Чтобы получить больше удовольствия от чтения, посетитеЯзыковой воробей издание.
- Если вам понравилась моя статья, подписывайтесьмоя чжихуа такжеFollow GitHub
- Игра Гуанчжоу Али, рекрутинговый интерфейс, знакомый с динамическими эффектами, скорость узла ~