2016-02-27 4 views
2

В моем текущем проекте у меня много приложений, в которых есть много зависимостей npm. Когда я развертываю приложение, каждое приложение получает зависимости от npm. Он работает очень хорошо, но я не знаю правильного пути для активного развертывания. Я не хочу проверять зависимости от ветви развертывания в реальном времени или что-то ещеЧто делать с пакетами npm для развертывания

У кого-то есть хорошее решение, связанное с этой проблемой? Обработка зависимостей в течение длительного времени?

На сайте npm они сказали, что я не использую npm для развертывания только для разработки.

ответ

1

Есть немало причин, почему полагаться на НОМ для производственных требований плохо:

  1. НОЙ латентности сети, неудачных запросы - при автоматизации развертывания производства, если НПЙ не сотрудничают с вашими запросами для некоторых причина, ваше развертывание может быть отложено или не выполнено, что происходит, когда вы пытаетесь нажать критическое исправление и развернуть разрывы? Это может быть проблема, независимо от того, где размещены модули, но имеет еще меньший контроль при использовании npm public repo.

  2. npm контроль качества зависимости, нарушение обновлений. Публичные модули могут быть обновлены в любое время, что может привести к нарушению изменений. Должна быть какая-то гарантия того, что зависимость npm, которая разрабатывается против, является точной версией, которая развертывается для производства.

  3. НПМ иногда просто не работает, или получает в странных состояний (мой собственный опыт :()

Что можно сделать по этому поводу ??

  • Эталонные конкретные версии npm
  • hostnpm зависимостей, я думаю, что npm предлагает самообслуживаемые репозитории, или репозитории могут быть разветвлены частными репозиториями и отправлены из github
  • сосредоточиться на развертывании артефактов вместо того, чтобы полагаться на npm для развертываний. Это может быть достигнуто путем создания докерных контейнеров или упаковки вашего приложения с использованием вашей собственной упаковочной системы https://github.com/jordansissel/fpm