节点错误找不到已安装的模块
[[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) >
您是否已使用-g选项安装模块? 我认为并非每个模块都是全局安装的,而是尝试在本地为您正在创建的项目(npm install)安装它,然后检查错误是否仍然存在。
您所安装的模块全球转到您的应用程序,并尝试这个全球链接到您的应用程序文件夹
sudo npm link <MODULeNAME>
这应该是最好的答案,它是一种更简洁/简单的本地安装方式,并允许您在全局范围内安装该模块。 – Bloodyaugust 2012-11-16 23:03:42
我只在做'sudo npm link',即使在'package.json'文件中正确声明,也找不到模块。添加'
+1。这对我有用,确实是一个更干净的解决方案。 – asiby 2014-01-11 17:19:39
谢谢!我在本地安装,它的工作原理。为什么地方和全球有所不同?该节点是不是会在全局和本地中找到模块? – Thetsu 2012-03-14 15:38:01
如果你只想要('东西');最好是在本地安装,否则,你必须要求('{PREFIX}'),其中prefix是全局安装路径。 看看这个[博客文章](http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/),正如它所说的,一般来说经验法则是如果要在应用程序中使用它们,则在本地安装;如果要在命令行中使用它们,则在全局范围内使用。 – Javo 2012-03-14 21:16:01
如果正在运行Node.js脚本,例如'〜/ bin/my-awesome-script.js',Node.js将在该脚本的文件夹中查找模块,而不是运行脚本的当前文件夹。所以在这种情况下,确保从'〜/ bin'运行'npm install ...'。 – avernet 2013-02-27 23:21:13