ben*_*ngo 8 javascript module node.js
我开始使用node.j开发,我遇到了关于使用模块'formidable'的问题.
我有这个错误:
错误:找不到模块'强大'
这是使用'npm ls installed'安装的模块列表:
??? express@2.5.9
? ??? connect@1.8.7
? ??? mime@1.2.4
? ??? mkdirp@0.3.0
? ??? qs@0.4.2
??? formidable@1.0.9
??? node-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
? ??? uglify-js@1.0.6
? ??? websocket-client@1.0.0
? ??? xmlhttprequest@1.2.2
??? npm@1.1.21
? ??? abbrev@1.0.3
? ??? archy@0.0.2
? ??? block-stream@0.0.5
? ??? chownr@0.0.1
? ??? fstream@0.1.18
? ??? fstream-npm@0.0.6
? ? ??? fstream-ignore@0.0.5
? ??? graceful-fs@1.1.8
? ??? inherits@1.0.0
? ??? ini@1.0.2
? ??? lru-cache@1.0.5
? ??? minimatch@0.2.2
? ??? mkdirp@0.3.0
? ??? node-gyp@0.4.1
? ? ??? ansi@0.0.4
? ? ??? glob@3.1.9
? ??? node-uuid@1.3.3
? ??? nopt@1.0.10
? ??? proto-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
??? active-x-obfuscator@0.0.1
? ??? zeparser@0.0.5
??? uglify-js@1.2.5
??? ws@0.4.14
? ??? commander@0.5.2
? ??? options@0.0.3
??? xmlhttprequest@1.2.2
我补充说,它是唯一产生此错误的模块.
另外,我真的不明白封装某些模块的方式,看来npm是直接在我正在使用模块安装命令的目录中安装模块,而且我注意到已经在express/connect /中安装了强大的功能第一次安装模块.
你能给我一些关于模块安装树的更多信息吗?
谢谢你的回复
干杯
要了解模块解析,请查看模块文档,尤其是从文件夹加载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}
Run Code Online (Sandbox Code Playgroud)
因此,当您使用 时npm install formidable,它将创建模块并将其安装到:
./node_modules/formidable
Run Code Online (Sandbox Code Playgroud)
但是,这意味着只有当前目录(包括子目录)中的脚本才能成功使用require('formidable'):
./foo.js
./lib/bar.js
./src/baz.js
./src/sub/qux.js
Run Code Online (Sandbox Code Playgroud)
-g但是,您可以将模块安装为“全局”,但您必须使用或明确要求--global:
npm install -g formidable
Run Code Online (Sandbox Code Playgroud)
然后,系统上的任何脚本都应该能够require('formidable').
至于树输出,当前目录中有 5 个已安装的模块:
expressformidablenode-inspectornpmsocket.io树中的其他所有内容都是这些模块的依赖项及其依赖项等的列表,但只有这 5 个可require(...)在您的脚本中使用。
| 归档时间: |
|
| 查看次数: |
12832 次 |
| 最近记录: |