Nodejs nie może znaleźć zainstalowanego modułu w systemie Windows?

W tej chwili uczę się nodejs na Windows. Kilka modułów jest instalowanych globalnie z npm.cmd i nodejs nie udało się znaleźć zainstalowanych modułów. Weźmy na przykład jade,

npm install jade -g

Jade jest zainstalowany w katalogu "C:\Program Files (x86)\nodejs\node_modules", ale poniższy kod zakończy się błędem "Cannot find module 'jade'",

var jade = require('jade');

Jednakże, kod będzie działał pomyślnie, gdy jade jest lokalnie zainstalowany (bez opcji-g w npm). Nie chcę używać lokalnie zainstalowanych modułów, to dla mnie strata miejsca na dysku, może niech mi ktoś pomoże aby Moduły zainstalowane globalnie działały na Windowsie?

Author: hippietrail, 2012-03-06

17 answers

Dodaj zmienną środowiskową o nazwie NODE_PATH i ustaw ją na %USERPROFILE%\Application Data\npm\node_modules (Windows XP), %AppData%\npm\node_modules (Windows 7/8/10), lub gdziekolwiek npm zakończy instalację modułów na Twoim Windows flavor. Aby to zrobić raz na zawsze, dodaj to jako zmienną systemową w zakładce Zaawansowane w oknie dialogowym Właściwości systemu(uruchom control.exe sysdm.cpl,System,3).

Szybkie rozwiązanie w Windows 7+ to po prostu uruchomić:

rem for future
setx NODE_PATH %AppData%\npm\node_modules
rem for current session
set NODE_PATH=%AppData%\npm\node_modules

Warto wspomnieć, że {[1] } jest używany tylko przy importowaniu modułów w aplikacjach węzłów. Kiedy chcesz używać globalnie zainstalowane binaria modułów w Twoim CLI musisz dodać je również do PATH, ale bez node_modules części (na przykład %AppData%\npm W Windows 7/8/10).


stara historia

Jestem całkiem nowy w node.sam js więc nie do końca mogę mieć rację ale z mojego doświadczenia to działa w ten sposób:
  1. - g nie jest sposobem na zainstalowanie bibliotek globalnych, jest tylko sposobem na umieszczenie ich na ścieżce systemowej, dzięki czemu można je wywołać z linii poleceń bez zapisywania pełnej ścieżki za nich. Jest to przydatne np. wtedy aplikacja node konwertuje pliki lokalne, np. less - Jeśli zainstalujesz ją globalnie, możesz użyć jej w dowolnym katalogu.
  2. węzeł.sam js nie spojrzał na npm global dir, używa innego algorytmu, aby znaleźć wymagane pliki: http://nodejs.org/api/modules.html#modules_file_modules (W zasadzie skanuje każdy folder w ścieżce, zaczynając od bieżącego dla folderu node_modules i sprawdza go).

Zobacz podobne pytanie o więcej szczegółów: Jak zainstalować moduł globalnie za pomocą npm?

 304
Author: Alexey Ivanov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-14 12:38:35

Jeśli jesteś na platformie windows7 może powinieneś zmienić NODE_PATH w następujący sposób: %AppData%\npm\node_modules

 33
Author: Jack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-16 15:49:39

Wiem, że mogę obudzić zombie, ale myślę, że to nadal problem, jeśli potrzebujesz globalnego dostępu do modułów węzłów w Windows 7 musisz dodać to do swojej globalnej ścieżki zmiennej:

C:\Users\{USER}\AppData\Roaming\npm

Ważne: tylko to bez node_modules części, Zajęło mi pół godziny, aby to zobaczyć.

 23
Author: Vitaliy Terziev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-02 08:28:11

Aby działał na windows 10 rozwiązałem go dodając folder %USERPROFILE%\AppData\Roaming\npm do mojej ścieżki. Dodanie \node_modules w ten sposób: %USERPROFILE%\AppData\Roaming\npm\node_modules\ nie zadziałało dla mnie.

 13
Author: Andi-lo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-12 13:18:14

Zacytuję tylko post na blogu tego węzła ...

Ogólnie zasadą jest:

  • Jeśli instalujesz coś, czego chcesz użyć w swoim programie, używając require ('whatever'), zainstaluj to lokalnie, w katalogu głównym Twój projekt.
  • Jeśli instalujesz coś, co chcesz użyć w powłoce, w linii poleceń lub coś takiego, zainstaluj go globalnie, tak aby jego pliki binarne trafiają do zmiennej środowiskowej PATH.

...

Oczywiście, są przypadki, w których chcesz zrobić jedno i drugie. Coffee-script I Express to dobre przykłady aplikacji, które mają interfejs wiersza poleceń, a także biblioteka. W takich przypadkach można wykonaj jedną z następujących czynności:

  1. zainstaluj go w obu miejscach. Poważnie, masz aż tak mało miejsca na dysku? W porządku, naprawdę. To małe programy JavaScript.
  2. zainstaluj go globalnie, a następnie npm link coffee-script lub npm link express (jeśli jesteś na platformie, która obsługuje dowiązania symboliczne.) Then wystarczy tylko zaktualizować kopię globalną, aby zaktualizować wszystkie dowiązania symboliczne jako cóż.
 12
Author: soemarko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-28 07:53:59

Aby uczynić go krótkim, użyj npm link jade w katalogu aplikacji.

 10
Author: sntran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-06 17:09:28

Próbowałem dodać / edytować zmienne środowiskowe i doszedłem do wniosku, że:

  1. Edytuj / dodaj User variables (w górnym polu) zamiast System variables (w dolnej części); w przeciwnym razie musisz "uruchomić jako administrator", aby to zadziałało.
  2. dołącza ;%AppData%\npm do Path, aby użyć go jako narzędzia wiersza poleceń (jeśli jest obsługiwane, jak jshint i grunt-cli).
  3. Utwórz NODE_PATH i ustaw go %AppData%\npm\node_modules w celu require('<pkg_name>') w skryptach bez instalowania go w katalogu projektu. (Ale npm link is suggested for to wymaganie, jeśli pracujesz na systemie operacyjnym z mklink, takim jak Vista i nowsze.)

Środowisko testowe:

  • Win 7 (Ent., 64-bit, SP1), Node.js 4.2.4, npm 2.14.12
  • Win 8.1 (Ent., 64-bit), Node.js 0.10.30, npm 1.4.21
 8
Author: Kong Kao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-05 17:16:47

Napotkałem ten problem na Windows 7, uruchamiając

npm install -g gulp

Jako administrator będąc zalogowanym jako zwykły użytkownik.

Rozwiązanie: podczas wykonywania tej samej instalacji co zwykły użytkownik (nie "Uruchom jako administrator" dla cmd) wszystko było w porządku. Domyślam się, że jest to związane z domyślną ścieżką instalacji i wyszukiwania.

 5
Author: Sebastian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-26 20:28:00

Strasznie się bawiłem, uruchamiając Moduły globalne. Ostatecznie dodałem jawnie C:\Users\yourusername\AppData\Roaming\npm do zmiennej PATH pod zmiennymi systemowymi. Musiałem również mieć tę zmienną przed zmienną ścieżki nodejs na liście.

Używam systemu Windows 10.

 5
Author: John Galt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-23 12:21:00

Z mojego doświadczenia z win8. 1 npm instaluje Moduły na C:\Users\[UserName]\AppData\Roaming\npm\node_modules ale dumply przeszukuje je na C:\Users\[UserName]\node_modules.

Jeden prosty moduł odniesienia rozwiązania w aplikacji przez pełną ścieżkę:

var jsonminify = require("C:/Users/Saulius/AppData/Roaming/npm/node_modules/jsonminify");
 3
Author: Saulius,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-03 14:49:30

Dla windows, wszyscy mówili, że należy ustawić zmienne środowiskowe dla modułów nodejs i npm, ale czy wiesz dlaczego? Dla niektórych modułów, mają one narzędzie wiersza poleceń, po zainstalowaniu modułu, tam are [moduł].cmd plik w C:\Program Files\nodejs , i służy do uruchamiania komendy w oknie. Jeśli więc nie dodasz ścieżki zawierającej plik cmd do zmiennych środowiskowych %PATH%, nie uruchomisz ich pomyślnie przez okno poleceń.

 3
Author: Kiki.J.Hu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-09 09:52:31

Alternatywnie możesz dodać do ~/.npmrc right prefiks . Mam C:\Program Files\nodejs Na 64 Win7.

 1
Author: dmi3y,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-18 18:08:49

Natknąłem się na to pytanie, ponieważ chcę użyć node.js z visual studio 2015 na moim nowym komputerze z systemem windows 10. Użyłem node.js na windows 7 i 8 i 8.1 nigdy nie jest problemem.js szuka modułu. Używam starszego węzła.js 0.10.39 ponieważ muszę korzystać z tej wersji ze względu na moduł serial i RFXCOM.

Odpowiedzią dla windows 10 jest ustawienie NODE_PATH w zmiennych środowiska z C:\Users\User\node_modules.

 1
Author: wetlip,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-23 16:22:10

W systemie Windows 10 musiałem lokalnie zainstalować gulp w folderze:

C:\Users\myaccount\AppData\Roaming\npm\node_modules

npm install gulp

Naprawiono mój problem z "gulp nie jest rozpoznawany"

 1
Author: Bizz Websites,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-19 17:28:02

Miałem ten sam problem, próbując zainstalować bowera z npm install -g bower

Myślę, że to dlatego, że node został zainstalowany przez innego użytkownika , nie mnie.

Odinstalowałem node, a następnie ponownie go zainstalowałem. Podczas instalacji zobaczyłem ten tekst dla opcji Dodaj do ścieżki > Moduły npm :

Komunikat w instalacji węzła

Tutaj wpisz opis obrazka

Po instalacji node wykonałem npm install -g bower ponownie. A teraz bower działa.

Na pewno nie jest konieczna ponowna instalacja węzeł z własnym użytkownikiem, jak ja. Rozwiązaniem muszą być zmienne NODE_PATHlub PATH, jak wyjaśnili inni użytkownicy.

To tylko po to, aby zauważyć, że ten problem występuje tylko wtedy, gdy węzeł został zainstalowany przez innego użytkownika (lub gdy podczas instalacji nie została zaznaczona opcja Dodaj do PATH > npm modules).

 1
Author: Gregorio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-14 10:45:12

Wystarczy pobrać i ponownie zainstalować węzeł z this i to naprawi wszystkie problemy ze ścieżką.

Nie zapomnij ponownie uruchomić wiersza polecenia lub terminala.

 0
Author: Mahendra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-29 04:47:47

Jeśli używasz systemu windows, wymaga to kilku kroków , 1) Utwórz plik o nazwie pakiet.json

 {
  "name": "hello"
, "version": "0.0.1"
, "dependencies": {
    "express": "*"
  }
}

Gdzie hello to nazwa pakietu, a * oznacza najnowszą wersję zależności

2) Kod do katalogu projektu i uruchom następujące polecenie

Npm install

Instaluje zależności

 -3
Author: Subbu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-13 13:23:34