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}
因此,当您使用 时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 个已安装的模块:
expressformidablenode-inspectornpmsocket.io树中的其他所有内容都是这些模块的依赖项及其依赖项等的列表,但只有这 5 个可require(...)在您的脚本中使用。