2012-08-07 12 views

Odpowiedz

6

Normalnie zależności w projekcie węzła są instalowane poprzez package.json: https://docs.npmjs.com/files/package.json

zainstalować każdą zależność z npm install --save my-dependency i zostanie on dodany do pliku package.json. Tak więc następna osoba w projekcie może zainstalować wszystkie zależności za pomocą polecenia npm install w tym samym folderze package.json.

Ale w moim przypadku chciałem zainstalować globalne wymagania npm poprzez plik tekstowy (podobny do pip install -r requirements.txt).

można zrobić z:

cat requirements.txt | xargs npm install -g

9

może chcesz przyjrzeć się dokumentacji npm shrinkwrap. Tworzy on npm-shrinkwrap.json, który ma pierwszeństwo przed każdym package.json podczas instalacji.

zasadzie odpowiednikiem jest:

npm shrinkwrap 
npm install 

Edit:

Od v5.0.0, npm teraz zawsze tworzy package-lock.json, z takim samym formacie jak npm-shrinkwrap.json. Od tego czasu nastąpiły inne zmiany, także w najnowszym v5.6.0. Zobacz package-lock docs.

+2

Należy również zauważyć, że npm ma funkcję, której nie ma w PIP - dodawanie do listy depów w trakcie instalacji. Użyj 'npm install - save aPackage' (lub' npm install --save-dev aDevPackage'). – Pat

1

Aby zainstalować pakiety NPM globalnie z pliku tekstowego (np npm-requirements.txt) o formacie zbliżonym do pliku wymaganie pip:

sed 's/#.*//' npm-requirements.txt | xargs npm install -g 

ten zezwala na komentarze w pliku wymagań, podobnie jak pip. (source)

Komenda podobna do pip freeze > requirements.txt jest:

ls "$(npm root -g)" > npm-requirements.txt 

Jednak ta jest niedoskonała, ponieważ nie zapisać numery wersji pakietów KMP.