节点错误找不到已安装的模块

The*_*tsu 15 module node.js npm

[root@zexu websocket_start]# npm ls -g installed
npm WARN ls doesn't take positional args. Try the 'search' command
npm WARN websocket-server@1.4.04 package.json: bugs['web'] should probably be bugs['url']
/usr/lib
??? npm@1.1.2 
? ??? abbrev@1.0.3 
? ??? block-stream@0.0.5 
? ??? fast-list@1.0.2 
? ??? fstream@0.1.12 
? ??? graceful-fs@1.1.5 
? ??? inherits@1.0.0 
? ??? ini@1.0.2 
? ??? lru-cache@1.0.5 
? ??? minimatch@0.1.5 
? ??? mkdirp@0.3.0 
? ??? node-uuid@1.3.3 
? ??? nopt@1.0.10 
? ??? proto-list@1.0.0 
? ??? read@0.0.1 
? ??? request@2.9.151 
? ??? rimraf@2.0.1 
? ??? semver@1.0.13 
? ??? slide@1.1.3 
? ??? tar@0.1.12 
? ??? which@1.0.3 
??? websocket-server@1.4.04 
[root@zexu websocket_start]# npm ls  installed
npm WARN ls doesn't take positional args. Try the 'search' command
/home/qonco/workspace/JS/websocket_start
(empty)
[root@zexu 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)
> 

小智 57

您已经安装了全局模块转到您的应用程序并尝试将全局链接到您的应用程序文件夹

   sudo npm link <MODULeNAME> 
Run Code Online (Sandbox Code Playgroud)

  • 这应该是最重要的答案,它是一种更简洁/更简单的本地安装方式,并允许您在全局安装模块一次. (3认同)
  • +1.这对我有用,确实是一个更清洁的解决方案. (2认同)

Jav*_*avo 16

您是否使用-g选项安装了模块?我认为并非每个模块都是全局安装的,而是尝试在本地为您正在创建的项目安装它(npm install),并检查错误是否仍然存在.

  • 如果你想要('某事'); 最好在本地安装它,否则,你必须要求('{PREFIX} something'),其中prefix是你全局安装它的路径.看看这个[博客文章](http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/),正如它所说,一般来说,如果要在应用程序中使用它们,则在本地安装;如果要从命令行使用它们,则全局安装. (7认同)