Node.js 节点错误找不到已安装的模块 [root@zexuwebsocket_启动]#已安装npm ls-g npm WARN ls不接受位置参数。尝试“搜索”命令 npm警告websocket-server@1.4.04package.json:bug['web']应该是bug['url'] /usr/lib ├─┬ npm@1.1.2 │ ├── abbrev@1.0.3 │ ├── 挡块-stream@0.0.5 │ ├── 快速-list@1.0.2 │ ├── fstream@0.1.12 │ ├── 优美的-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 │ ├── 节点-uuid@1.3.3 │ ├── nopt@1.0.10 │ ├── 原型-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 └── 网袋-server@1.4.04 [root@zexuwebsocket_启动]#已安装npm ls npm WARN ls不接受位置参数。尝试“搜索”命令 /主页/qonco/workspace/JS/websocket\u开始 (空) [root@zexuwebsocket_开始]#节点 >需要(“websocket服务器”); 错误:找不到模块“websocket服务器” at Function.\u解析文件名(module.js:332:11) at功能。加载(模块js:279:25) at Module.require(Module.js:354:17) 根据需要(模块js:370:17) 回复:1:1 在REPLServer.eval(repl.js:80:21) 回复js:190:20 在REPLServer.eval(repl.js:87:5) 在接口处。(回复js:182:12) 在Interface.emit(events.js:67:17) >

Node.js 节点错误找不到已安装的模块 [root@zexuwebsocket_启动]#已安装npm ls-g npm WARN ls不接受位置参数。尝试“搜索”命令 npm警告websocket-server@1.4.04package.json:bug['web']应该是bug['url'] /usr/lib ├─┬ npm@1.1.2 │ ├── abbrev@1.0.3 │ ├── 挡块-stream@0.0.5 │ ├── 快速-list@1.0.2 │ ├── fstream@0.1.12 │ ├── 优美的-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 │ ├── 节点-uuid@1.3.3 │ ├── nopt@1.0.10 │ ├── 原型-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 └── 网袋-server@1.4.04 [root@zexuwebsocket_启动]#已安装npm ls npm WARN ls不接受位置参数。尝试“搜索”命令 /主页/qonco/workspace/JS/websocket\u开始 (空) [root@zexuwebsocket_开始]#节点 >需要(“websocket服务器”); 错误:找不到模块“websocket服务器” at Function.\u解析文件名(module.js:332:11) at功能。加载(模块js:279:25) at Module.require(Module.js:354:17) 根据需要(模块js:370:17) 回复:1:1 在REPLServer.eval(repl.js:80:21) 回复js:190:20 在REPLServer.eval(repl.js:87:5) 在接口处。(回复js:182:12) 在Interface.emit(events.js:67:17) >,node.js,module,npm,Node.js,Module,Npm,您是否安装了带有-g选项的模块? 我认为并非每个模块都要全局安装,相反,请尝试为您正在创建的项目(npm安装)在本地安装它,并检查错误是否仍然存在。您已经安装了全局模块,请转到您的应用程序,尝试将全局模块链接到您的应用程序文件夹 [root@zexu websocket_start]# npm ls -g installed npm WARN ls doesn't take positional args. Try the 'search' command npm WARN websocket-

您是否安装了带有-g选项的模块?
我认为并非每个模块都要全局安装,相反,请尝试为您正在创建的项目(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) >
sudo-npm链接

谢谢!我在本地安装,它可以工作。为什么本地和全球的情况有所不同?是不是节点将在全局和本地找到模块?如果您只需要('something');最好在本地安装,否则,您必须要求({PREFIX}something'),其中PREFIX是全局安装它的路径。看看这个,正如它所说的,通常的经验法则是,如果你要在你的应用程序中使用它们,就在本地安装,如果你要从命令行使用它们,就在全局安装。如果你运行一个Node.js脚本,例如
~/bin/my awesome script.js
,Node.js会在该脚本的文件夹中查找该模块,不是运行脚本的当前文件夹。因此,在这种情况下,请确保为此从
~/bin
-1运行
npm安装…
。它工作不好,而且相当混乱。在我的例子中,我需要xpath模块,npm试图在我的项目中本地安装xpath及其所有依赖项。Tony的解决方案工作正常,因为它只向已经全局安装的xpath模块添加了一个符号链接。NPM有意在本地安装模块。在谷歌上快速搜索关于这一点的官方声明,这里你有编辑:事实上,常见问题解答中包含了这一点这应该是最重要的答案,这是一种更简洁/简单的本地安装方式,并允许您在全局范围内安装一次模块。我只执行了
sudo npm link
,即使在
package.json
文件中正确声明,也找不到该模块。添加
参数解决了这个问题。
   sudo npm link <MODULeNAME>