Использование зависимостей скомпилированных узлов в разных средах - PullRequest
2 голосов
/ 06 сентября 2011

У меня есть проект узла, который я запускаю локально и развертываю на сервере CentOS. У меня есть несколько зависимостей, одна из которых основана на скомпилированной зависимости.

Используя npm, я могу скомпилировать зависимость локально, используя npm install, и она будет отлично работать. Однако это не скомпилировано для сервера развертывания, поэтому оно сломается, если оно будет загружено.

Я могу скомпилировать зависимость от блока CentOS, и он будет работать на сервере, но он сломается в локальной среде.

Может кто-нибудь придумать обходной путь, чтобы я мог заставить узел использовать глобальные зависимости в локальной среде и локальные зависимости на сервере?

Спасибо!


Обновление:

Я нашел способ сделать это сейчас, это не элегантно, но работает:

  1. запустить установку npm в моей локальной среде
  2. переименуйте папку node_modules в node_modules_local
  3. запустить npm install на сервере
  4. добавить переменную ко всем require() путям
  5. установить для локальной переменной среды значение "development"
  6. проверьте, находимся ли мы в режиме разработки, если мы находимся, установите для переменной require path значение ./node_modules_local.

1 Ответ

2 голосов
/ 07 февраля 2012

Проверка в исходном коде зависимостей (скомпилированные зависимости и js-only-зависимость)При развертывании приложения запускайте «npm rebuild» на сервере.Похоже, это официально рекомендованный путь.Подробнее см. http://www.mikealrogers.com/posts/nodemodules-in-git.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...