2012-06-11 13 views
17

Chcę zainstalować pakiety lokalnie, ale npm zawsze instaluje pakiety w lokalizacji globalnej. Używam następujące polecenia:npm nie zainstaluje pakietów lokalnie. Co jest nie tak?

npm install serialport 

nie mam polecenie .npmrc a ja nie używam -g flagę, więc nie wiem, dlaczego to nie jest zainstalowanie lokalnie. Oto fragment z pliku konfiguracyjnego pokazujący, że globalny jest fałszywy: $ npm config ls -l | grep globalny globalny = false globalconfig = "/ usr/local/etc/npmrc" globalignorefile = "/ usr/local/etc/npmignore"

a paczki nadal są zainstalowane jak ten

[email protected] ../../../../node_modules/serialport 

Więc jeśli nie rozumiem, co znaczy "lokalny", wydaje się to błędne. Miałem wrażenie, że "lokalny" oznacza w bieżącym katalogu roboczym, abym mógł wykonać "wymaganie" w moim głównym pliku kodu. Patrz: http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/ jak podano w poprzednim pytaniu dotyczącym npm.

Czy ktoś może podać mi kilka wskazówek na ten temat? Dziękuję Ci bardzo.

P.S. Nie jest to specyficzne dla modułu szeregowego. To się dzieje z nimi wszystkimi.

Odpowiedz

29

Większość moją odpowiedź można znaleźć: http://npmjs.org/doc/folders.html#More-Information

Co rozumiem, jest to, że npm spróbuje zainstalować go w rozsądnej lokalizacji. Jeśli masz katalog project/node_modules i jesteś w/project i instalujesz npm, użyjesz product/node_modules.

Teraz, jeśli przypadkiem zrobiłeś cd project/css i zrobiłeś npm install, wtedy npm przejdzie do góry dopóki nie znajdzie twojego katalogu node_modules. Zapobiega to przypadkowemu zainstalowaniu go w urządzeniu project/css.

W twoim przypadku masz katalog node_module gdzieś na ścieżce twojego projektu. Domyślam się, że można to naprawić, usuwając ten katalog lub ręcznie tworząc katalog w folderze projektu.

+0

Tak, po prostu okazało się, że ja i starał się odpowiedzieć na moje własne pytanie, ale nowi użytkownicy nie mogą zrobić, że aż 8 godzin później. Oto, co znalazłem, co to wyjaśniło. http://stackoverflow.com/questions/6514621/npm-install-locally – user1449536

+0

Bez obaw, właściwie nie byłem w 100% pewien, dopóki nie znalazłem strony z dokumentacją. – Pickels

+0

Twoja odpowiedź jest prawie poprawna, ale ten folder nazywa się node_module ** s ** – idmean

5

Jeśli masz plik package.json w folderze, który próbujesz zainstalować pakiet, to utworzy on poprawnie folder node_modules.

Podstawowe package.json

{ 
    "name": "application-name", 
    "version": "0.0.1" 
}