2013-12-12 8 views
6

W ograniczonym środowisku, w którym nie każdy użytkownik ma dostęp, chciałbym móc używać npm offline tam, gdzie to możliwe.Jak korzystać z npm w środowisku o ograniczonym dostępie do Internetu

Mój pomysł polega na wskazaniu globalnej konfiguracji we współużytkowanym katalogu pamięci podręcznej, tak aby zaawansowani użytkownicy mogli wykonywać instalacje, a zależności pojawią się w katalogu pamięci podręcznej. Inni użytkownicy mogą następnie instalować instalacje offline w trybie offline dla wszystkich elementów znajdujących się w pamięci podręcznej.

Tak 2 pytania:

Czy to zadziała? Skrót od konfiguracji mojego lokalnego repozytorium npm jest łatwiejszy sposób?

Odpowiedz

7

Per dokumentacji:

npm install (with no args in a package dir) 
npm install <tarball file> 
npm install <tarball url> 
npm install <folder> 
npm install <name> [--save|--save-dev|--save-optional] 
npm install <name>@<tag> 
npm install <name>@<version> 
npm install <name>@<version range> 
npm i (with any of the previous argument usage) 

Jako takie npm pozwala zrobić:

npm install /path/to/folder/containing/ node_modules

Na przykład: npm install ~/Downloads/http-proxy, pod warunkiem, że folder node_modules tkwi w http-proxy.

Możesz ustawić swoje repozytorium na wewnętrznym (dostępnym) serwerze i skierować ludzi do pobrania z tej samej nazwy.

1

r3mus ma rację. Jednak dla każdego użytkownika spowodowałoby to pewne obciążenie poznawcze i prawdopodobnie problemy z zarządzaniem.

Co może działać lepiej jest mieć korporacyjnej gospodarzem repozytorium npm (jak opisano tutaj: http://clock.co.uk/tech-blogs/how-to-create-a-private-npmjs-repository), a następnie po prostu użytkownikom zmianę (raz) swoje ustawienia rejestru poprzez npm set registry http://yourregistry.com

+0

To na pewno działa bardziej płynnie, choć PO wskazują, że łatwiejszy sposób byłyby korzystne;) – brandonscript

+0

Tak, myślę, że nasze odpowiedzi każdy zależy od tego, kto próbuje zrobić to łatwo na . :) – Paul

+1

* dokładnie *: D A potem jest łatwiej dla kogo na dłuższą metę ... – brandonscript

2

Dzięki za odpowiedzi. To, co udało mi się zrobić, to używanie go jako repozytorium lustrzanego. Mogę dać temu procesowi dostęp do internetu, a nie inni użytkownicy. Następnie ustawiam zmienną środowiskową dla wszystkich użytkowników, aby wskazywać ich repozytorium npm w instancji sinopia.

Wczesne dni, ale wydaje się, że działa dobrze.

0

Do budowy serwerów rozsądną strategią jest dowiązanie symboliczne do katalogu node_modules z istniejącym katalogiem, w którym moduły zostały już zainstalowane.

np. mój skrypt PowerShell można przeczytać coś takiego

If (-Not (Test-Path node_modules)) 
{ 
    & cmd /c mklink /d /j node_modules D:\npm-cache\node_modules 
    Write-Verbose "Symlinked node_modules" 
} 
Powiązane problemy