Przeszukałem stronę modułów wiki, ale nie mogę znaleźć niczego podobnego do virtualenv (python) lub rvm.
Czy ktoś tutaj oddziela node.js we własnym środowisku env? Naprawdę nie lubię instalować npm w całym systemie.
Przeszukałem stronę modułów wiki, ale nie mogę znaleźć niczego podobnego do virtualenv (python) lub rvm.
Czy ktoś tutaj oddziela node.js we własnym środowisku env? Naprawdę nie lubię instalować npm w całym systemie.
Odpowiedzi:
Jeśli głównym problemem jest posiadanie pakietów npm dla całego systemu, może rozważ użycie bardzo fajnego polecenia „bundle” z npm. Jest to bardziej zbliżone do zamrażania klejnotów lub używania bundlera w szynach niż rvm.
To bardzo łatwe. Po prostu utwórz plik package.json:
{ "name": "yourapp", "version": "0.0.1", "dependencies": {"jade": "0.4.1"}}
a następnie uruchom:
npm bundle vendor
lub jeśli twoja wersja npm jest> = 1.0 uruchom:
npm install
zamrozić w katalogu dostawcy. a następnie użyj:
require.paths.unshift('./vendor');
npm install
wymieniony npm bundle
od NPM 1.0.
nodeenv - wirtualne środowisko dla node.js (Analog virtualenv )
node.js
środowisko było aktywowane wraz ze środowiskiem Python. Zobacz nodeenv -p
.
Istnieje również kilka systemów zarządzania wersjami węzłów, które mogą pomóc.
Sprawdź Nave https://github.com/isaacs/nave
NVM może być również używany https://github.com/creationix/nvm
Jest też jeden o nazwie n https://github.com/visionmedia/n
nvm
lub n
i chcesz automatycznie przełączać się po zmianie katalogów, spójrz na avn
: github.com/wbyoung/avn
Odpowiedź bxjx jest koncepcyjnie dokładna. Należy jednak pamiętać, że polecenie bundle nie zajmuje już katalogu. To zawsze spada paczki do node_modules
folderu, tak że npm wie gdzie je znaleźć później (i może uniknąć podwójnej instalacji zależnościami).
Każde rozwiązanie będzie prawdopodobnie wymagało zainstalowania npm i nawy „ogólnosystemowej” (czyli w Twoim PATH
w całym , który może być ~
gdzieś indziej), ale potem tylko zainstalowanie określonych zależności w środowisku wirtualnym.
Dokładniej odpowiedziałem w sprawie github .
tl; dr: Przypadek użycia jest ważny i pomocny i chociaż jest tam głównie, nie jest tak dobrze obsługiwany, jak mógłby być. Powinniśmy się upewnić, że dobrze to przemyśleliśmy.
Nie zawsze musisz instalować zależności globalnie. Zwykle jest to zalecane, ponieważ wtedy możesz użyć poleceń dostarczanych przez pakiety npm, ale jeśli zainstalujesz je lokalnie (w node_modules
katalogu), możesz również użyć tych poleceń, zostaną one tylko umieszczone w node_modules/.bin/
katalogu, więc będziesz musiał wpisać node_modules/.bin/<command>
, co jest denerwujące, ale możesz oczywiście dodać tę ścieżkę do swojej PATH
zmiennej środowiskowej:
export PATH=node_modules/.bin:$PATH
Następnie możesz po prostu wpisać <command>
i działa!
W rzeczywistości istnieje polecenie npm, które zwraca bezwzględną ścieżkę do .bin
katalogu:
$ npm bin
/path/to/node_modules/.bin
To polecenie działa również, gdy jesteś w podkatalogu projektu, zwróci pierwszy node_modules/.bin
katalog, który znajdzie w swoich katalogach nadrzędnych.
Możesz dodać ten alias do swojego, .bashrc
aby automatycznie dodać .bin/
katalog do PATH
:
alias nodebin='export PATH=$(npm bin):$PATH'
Więc kiedy jesteś w katalogu projektu, który ma node_modules/
katalog w katalogu głównym, możesz pisać, nodebin
a następnie możesz używać wszystkich poleceń znajdujących się w .bin/
katalogu!
wygląda na lepszy sposób:
Instalowanie Node.js i npm w Python Virtualenv
teraz mogę używać narzędzi węzłów bez bałaganu w globalnym środowisku bin
Jeśli podoba Ci się prostota, szczerze polecam n , nie może być prostsze!
npm install
do tego używają .