2013-04-27 20 views
54

Próbowałem zainstalować phantomjs w celu uzyskania make testTwitter Bootstrap. Po zainstalowaniu go lokalnie, tj. npm install phantomjs, zgłosił on, że pakiet był nieistotny.Dodatkowy pakiet zainstalowany lokalnie

├─┬ [email protected] extraneous 
│ ├── [email protected] 
... 
npm ERR! extraneous: [email protected] /Users/admin/bootstrap/node_modules/phantomjs 
npm ERR! not ok code 0 

Jednak gdy phantomjs został zainstalowany globalnie czyli npm install phantomjs -g, to działało w porządku to nie obcy zgłosiło błąd.

Pytania:

  1. Czy dlatego phantomjsnot specified in the package.json file?
  2. Ogólne pytanie: czy możemy mieć jakąkolwiek paczkę np. phantomjs zainstalowany globalnie, a także lokalnie?
+1

'obce: nie tworząc niezbędną częścią czegoś ... jest' to tylko ja lub czy to dziwne, że pakiety, których * potrzebujesz * są "obce"? – Shanimal

Odpowiedz

74
  1. Tak. (Ponowna instalacja za pomocą npm install nie będzie ponownie instalować phantom.js. (Btw .: npm install xxx --save automatycznie doda xxx do pliku package.json)
  2. Tak. Wersje pakietów lokalnych są preferowane w stosunku do wersji globalnych. (Chociaż trzeba magazynowe wykonywalnych jakąś ścieżkę.)
+2

użyj -save-dev, aby zapisać to jako zależność programisty –

+3

@VincentDeSmet powinno być '--save-dev' lub' -D' jako skrót, na początku brakowało ci myślnika. – Val

+0

dlaczego lokalne preferowane są w stosunku do globalnych – dsdsdsdsd

7
  1. phantomjs powinny być zawarte w Twoim pakiecie .json (ręcznie lub edytowania go za pomocą polecenia --save patrz odpowiedź TheHippo za). Jeśli jest zainstalowany gdzieś i nie trzeba go użyć polecenia przycinać

    npm prune

usunie wszystkie non-wymagane pakiety.

  1. Aby zainstalować element, zarówno lokalnie jak i globalnie użyć:

    sudo npm install -g phantomjs

Powiązane problemy