找不到强大的模块 - 节点.js

Cannot find module formidable - Node.js

本文关键字:节点 js 模块 找不到      更新时间:2023-09-26

我开始使用node.j进行开发,我遇到了一个关于使用模块'强大'的问题。

我有这个错误:

错误:找不到模块"强大"

以下是使用"npm ls 已安装"安装的模块列表:

├─┬ express@2.5.9│ ├── connect@1.8.7│ ├── mime@1.2.4│ ├── mkdirp@0.3.0│ └── qs@0.4.2├── formidable@1.0.9├─┬ 节点-inspector@0.1.10│ ├── paperboy@0.0.3│ └─┬ socket.io@0.8.7│ ├── policyfile@0.0.4│ ├── redis@0.6.7│ └─┬ socket.io-client@0.8.7│ ├── 丑陋-js@1.0.6│ ├── 网络套接字-client@1.0.0│ └── xmlhttprequest@1.2.2├─┬ npm@1.1.21│ ├── abbrev@1.0.3│ ├── archy@0.0.2│ ├── 块-stream@0.0.5│ ├── chownr@0.0.1│ ├── fstream@0.1.18│ ├─┬ 流-npm@0.0.6│ │ └── 流-ignore@0.0.5│ ├── 优雅-fs@1.1.8│ ├── inherits@1.0.0│ ├── ini@1.0.2│ ├── 鲁-cache@1.0.5│ ├── minimatch@0.2.2│ ├── mkdirp@0.3.0│ ├─┬ 节点-gyp@0.4.1│ │ ├── ansi@0.0.4│ │ └── glob@3.1.9│ ├── 节点-uuid@1.3.3│ ├── nopt@1.0.10│ ├── 原型list@1.0.0│ ├── read@0.0.2│ ├── request@2.9.153│ ├── rimraf@2.0.1│ ├── semver@1.0.13│ ├── slide@1.1.3│ ├── tar@0.1.13│ ├── UID-number@0.0.3│ └── which@1.0.5└─┬ socket.io@0.9.6  ├── policyfile@0.0.4  ├── redis@0.6.7  └─┬ socket.io-client@0.9.6    ├─┬ 主动-x-obfuscator@0.0.1    │ └── zeparser@0.0.5    ├── 丑陋-js@1.2.5    ├─┬ ws@0.4.14    │ ├── commander@0.5.2    │ └── options@0.0.3    └── xmlhttprequest@1.2.2

我补充说,它是唯一产生此错误的模块。

另外,我

不太了解封装某些模块的方式,似乎npm正在使用模块安装命令的目录中直接安装模块,并且我注意到强大的模块已安装在第一次安装的express/connect/模块中。

您能否给我有关模块安装树的更多信息。
感谢您的回复

干杯

接受的答案看起来非常全面和正确,但这对我有用:

npm install -d

d 代表依赖关系(我认为(

要了解模块分辨率,请查看模块文档,尤其是从node_modules文件夹加载。

例如,如果位于'/home/ry/projects/foo.js'的文件称为 require('bar.js') ,则节点将按此顺序查找以下位置:

  • /home/ry/projects/node_modules/bar.js
  • /home/ry/node_modules/bar.js
  • /home/node_modules/bar.js
  • /node_modules/bar.js

NPM 通过将模块安装到:

./node_modules/{module}

因此,当您使用 npm install formidable 时,它将创建模块并将其安装到:

./node_modules/formidable

但是,这意味着只有当前目录中的脚本(包括子目录(才能成功使用 require('formidable')

./foo.js
./lib/bar.js
./src/baz.js
./src/sub/qux.js

但是,您可以将模块安装为"全局",但您必须使用 -g--global 明确要求它:

npm install -g formidable

然后,系统上的任何脚本都应该能够require('formidable')

<小时 />

至于树输出,您当前目录中有 5 个已安装的模块:

  • express
  • formidable
  • node-inspector
  • npm
  • socket.io

树中的其他所有内容都是这些模块的依赖项及其依赖项等的列表,但只有这 5 个可用于脚本中的require(...)