2014-12-02 14 views
5

Setup:Nodejs/npm: Jak zainstalować/rekompilacji skopiowane pakiety App

  • VM z dostępem do Internetu, gdzie npm install zostanie wykonany, aby zainstalować wszystkie zależności aplikacji. Rezultatem będzie folder z aplikacją i jej zależnościami w node_modules.

  • Pomiędzy modułami aplikacji znajduje się: mongoose, który w czasie instalacji używa node-gyp do kompilacji natywnego rozszerzenia BSON.

  • Folder aplikacji jest kopiowany na inną maszynę wirtualną bez połączenia z Internetem i jest w pełni funkcjonalny, ale wtedy skompilowane rozszerzenia nie działają, ale awarie są wykonywane przez .js.

Pytanie:

Jak mogę ponownie zainstalować/Przekompiluj/zregenerować wszystkie moduły aplikacji na nowym VM bez łączem internetowym?

Odpowiedz

11

Dokładnie to robi polecenie npm rebuild. Po prostu uruchom katalog npm rebuild w katalogu aplikacji po skopiowaniu na nową maszynę wirtualną, a wszelkie dodatki binarne zostaną zrekompilowane w celu dopasowania do bieżącej architektury procesora i wersji węzła. Jeśli początkowa npm install zanim kopiarka zakończy się pełnym sukcesem, npm rebuild na drugiej maszynie wirtualnej nie będzie musiała niczego pobierać. Po prostu upewnij się, że druga maszyna wirtualna ma rozsądnie bliską wersję węzła i odpowiednie kompilatory, biblioteki itp. Na niższym poziomie (na przykład build-essential i python na debian).

+0

Schludny! Dzięki! Właśnie to, czego potrzebowałem :) – diosney