【问题标题】:node error cannot find module already installed节点错误找不到已安装的模块
【发布时间】:2012-03-31 01:42:54
【问题描述】:
[root@zexu websocket_start]# npm ls -g 已安装 npm WARN ls 不采用位置参数。尝试“搜索”命令 npm WARN websocket-server@1.4.04 package.json: bugs['web'] 应该是 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 │ ├── 优雅-fs@1.1.5 │ ├── 继承@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 安装 npm WARN ls 不采用位置参数。尝试“搜索”命令 /home/qonco/workspace/JS/websocket_start (空的) [root@zexu websocket_start]#节点 > 要求(“websocket 服务器”); 错误:找不到模块'websocket-server' 在 Function._resolveFilename (module.js:332:11) 在 Function._load (module.js:279:25) 在 Module.require (module.js:354:17) 在需要 (module.js:370:17) 在 repl:1:1 在 REPLServer.eval (repl.js:80:21) 在 repl.js:190:20 在 REPLServer.eval (repl.js:87:5) 在界面。 (repl.js:182:12) 在 Interface.emit (events.js:67:17) >

【问题讨论】:

    标签: node.js module npm


    【解决方案1】:

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

       sudo npm link <MODULeNAME> 
    

    【讨论】:

    • 这应该是最佳答案,这是一种更简洁/简单的本地安装方式,并且允许您在全局范围内安装一次模块。
    • 我只在做sudo npm link,即使在package.json 文件中正确声明也找不到模块。添加&lt;module_name&gt; 参数解决了它。
    【解决方案2】:

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

    【讨论】:

    • 谢谢!我在本地安装并且可以正常工作。为什么在本地和全球之间存在差异?那个节点不是会在全局和本地找到模块吗?
    • 如果你只想 require('something');最好在本地安装它,否则,您必须要求('{PREFIX}something'),其中前缀是您全局安装它的路径。看看这个blog post,正如它所说,一般来说,如果你要在你的应用程序中使用它们,那么经验法则是在本地安装它们,如果你要从命令行使用它们,则在全局范围内安装。跨度>
    • 如果正在运行 Node.js 脚本,例如~/bin/my-awesome-script.js,Node.js 将在该脚本的文件夹中查找模块,而不是您运行脚本的当前文件夹。所以在这种情况下,请确保从~/bin 运行npm install …。
    • -1 为此。它不能很好地工作,而且相当混乱。就我而言,我需要 xpath 模块,并且 npm 尝试在我的项目中本地安装 xpath 及其所有依赖项。 Tony 的解决方案有效,因为它只向已经全局安装的 xpath 模块添加了一个符号链接。
    • NPM 故意在本地安装模块。在谷歌上快速搜索了一个关于这个的官方声明,在这里你有github.com/npm/npm/issues/918#issuecomment-1163447 编辑:事实上,它在常见问题解答中涵盖了npmjs.org/doc/faq.html
    猜你喜欢
    • 2021-07-25
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 2018-03-08
    • 2014-11-04
    • 2015-10-09
    • 2015-01-31
    相关资源
    最近更新 更多