2012-03-17 23 views
5

Po raz pierwszy przełączam się na Node.js i postanowiłem utworzyć prostą aplikację za pomocą ekspresu. I przestrzegać instrukcji od github w pustym katalogu tak:Wystąpił błąd podczas uruchamiania podstawowego projektu Express

npm install -g express 
express 
npm install -d 
node app.js 

Podczas nawigacji do localhost:3000 otrzymuję błąd obserwacji:

Express 
500 Error: Cannot find module './lib/jade' 
at Function._resolveFilename (module.js:332:11) 
at Function._load (module.js:279:25) 
at Module.require (module.js:354:17) 
at require (module.js:370:17) 
at Object. (C:\dev\gravity_kata\node_modules\jade\index.js:4:5) 
at Module._compile (module.js:441:26) 
at Object..js (module.js:459:10) 
at Module.load (module.js:348:31) 
at Function._load (module.js:308:12) 
at Module.require (module.js:354:17) 

Patrząc pod node_modules\jade\lib widzę wszystkich plików bibliotecznych Jade, ale bez folderu jade. Stworzyłem więc folder pod biblioteką o nazwie jade i przeniosłem tam pliki biblioteki, a teraz działa domyślna aplikacja.

Widząc, że prawie nie mam doświadczenia z Node.js i Express, jestem pewien, że zrobiłem coś złego. Czy ktokolwiek ma pojęcie, co się tutaj dzieje?

Edit:

I dove w kodzie Jade. W pliku index.js Jade wymaga lib\jade i patrząc pod folderem lib, nie było pliku jade.js. No cóż, to jest problem, ale dlaczego brakuje pliku jade.js? Podczas ściągania Jade source z npm znajduje się plik jade.js w katalogu lib. Skopiowałem folder lib z pobranego źródła do modułu Jade dla mojego projektu i teraz działa dobrze.

Z jakiegoś powodu, npm nie ściągnie pliku jade.js. Wersja w pliku packages.json pasuje do źródła, które zostało usunięte, 0.21.0. Ktoś ma pomysł, dlaczego tak się stało?

+1

Wydaje się, że jest to problem jade lub ekspresowy. Spróbuj zagłębić się w kod ... –

+0

Edytowałem moją odpowiedź na temat tego, co znalazłem po wkopaniu się w kod. – JChristian

+0

Pobranie ze źródła i wyodrębnianie pracowało dla mnie. Dziękuję za wskazanie brakującego pliku. To musi być błąd z NPM/Jade. – foobar

Odpowiedz

2

Dla mnie, w systemie Windows, jade wersja 0.22.0 naprawiła problem.

+0

To musiał być błąd w jade, ponieważ wersja 0.22.0 naprawiła problem również dla mnie. – JChristian

2

prawdopodobnie ma to związek z faktem, że zainstalowano ekspresowo globalnie (-g), ale npm install -d zostało wykonane lokalnie. spróbuj zainstalować je zarówno w skali globalnej, jak i woleliby, zarówno lokalnie:

sudo npm uninstall express -g 
npm install express 
npm install jade (or npm install -d) 
+1

Instalacja wyrażenia globalnego daje dostęp do pliku wykonywalnego. Usunąłem ekspresowo na całym świecie, ale ekspresowe i jade zostały już zainstalowane lokalnie. Nadal dostaję ten sam błąd. – JChristian

11

cd do folderu wyraźnej projektu i uruchom „npm install”, to będzie zainstalować wszystkie zależności

+0

Kiedy mówisz folder projektu ekspresowego, masz na myśli katalog '/ node_modules/express'? – JChristian

+0

czy używasz Linuksa lub Windowsa? powiedzmy utworzeniu projektu na pulpicie przy użyciu wyrazić testproject następnie cd testproject npm zainstalować – gastonfartek

+0

im przykro im nie dobry w komentarzach, i ponownie napisać, że komentarz – gastonfartek

0

Naprawdę upewnić się, że wszystkie moduł require s są prawidłowe. JavaScript jest bardzo zabawny w informowaniu Cię o tym, co jest w rzeczywistości złe. Spróbuj usunąć szablon z jadeitu i zobacz, co się stanie.

0

Właśnie znalazłem ten problem z błędem modułu jade. Wygląda na to, że folder jade nie został utworzony automatycznie (rodzaj błędu). Teraz rozwiązałem to, ponownie instalując jade. Następnie folder jade został utworzony automatycznie. użyj npm odinstalować gulp-jade, a następnie zainstaluj ponownie gulp-jade

Powiązane problemy