2012-03-14 12 views
12
 
[[email protected] websocket_start]# npm ls -g installed 
npm WARN ls doesn't take positional args. Try the 'search' command 
npm WARN [email protected] package.json: bugs['web'] should probably be bugs['url'] 
/usr/lib 
├─┬ [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
└── [email protected] 
[[email protected] websocket_start]# npm ls installed 
npm WARN ls doesn't take positional args. Try the 'search' command 
/home/qonco/workspace/JS/websocket_start 
(empty) 
[[email protected] websocket_start]# node 
> require("websocket-server"); 
Error: Cannot find module 'websocket-server' 
    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 repl:1:1 
    at REPLServer.eval (repl.js:80:21) 
    at repl.js:190:20 
    at REPLServer.eval (repl.js:87:5) 
    at Interface. (repl.js:182:12) 
    at Interface.emit (events.js:67:17) 
> 

Odpowiedz

14

Czy zainstalowałeś moduł z opcją -g? Myślę, że nie każdy moduł ma być zainstalowany globalnie, zamiast tego spróbuj zainstalować go lokalnie dla tworzonego projektu (npm install) i sprawdź, czy błąd nie zniknął.

+0

dziękuję! Instaluję lokalnie i to działa. Dlaczego różni się lokalnie i globalnie? Czy ten węzeł nie znajdzie modułów zarówno globalnie, jak i lokalnie? – Thetsu

+7

Jeśli chcesz po prostu wymagać ("coś"); lepiej jest zainstalować go lokalnie, w przeciwnym razie musisz ("{PREFIX} coś"), gdzie prefiks jest ścieżką do miejsca, w którym zainstalowałeś go globalnie. Sprawdź to [post na blogu] (http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/) i, jak to się mówi, ogólnie regułą jest instalowanie lokalnie, jeśli zamierzasz z nich korzystać w swojej aplikacji, i globalnie, jeśli zamierzasz ich używać z wiersza poleceń. – Javo

+0

Jeśli są uruchomione skrypty Node.js, np. '~/bin/my-awesome-script.js', Node.js wyszuka moduł w folderze tego skryptu, a nie w bieżącym folderze od uruchomienia skryptu. Tak więc w tym przypadku upewnij się, że uruchomiłeś 'npm install ...' z '~/bin'. – avernet

54

zainstalowaniu modułu globalnego przejdź do aplikacji i spróbować połączyć światowy do folderu aplikacji

sudo npm link <MODULeNAME> 
+3

To powinna być najlepsza odpowiedź, jest to znacznie bardziej zwięzły/prosty sposób lokalnej instalacji i pozwala na zainstalowanie modułu raz globalnie. – Bloodyaugust

+1

Robiłem 'sudo npm link' tylko i nie mogłem znaleźć modułu, nawet jeśli został zadeklarowany prawidłowo w pliku' package.json'. Dodanie argumentu '' rozwiązało go. –

+2

+1. To działało dla mnie i było rzeczywiście czystszym rozwiązaniem. – asiby

Powiązane problemy