救命啊啊啊为什么我不能npm install 失败

npm install -G gulp
为什么会安装在项目目录下? - CNode技术社区
积分: 4590
这家伙很懒,什么个性签名都没有留下。
d:\upupw\htdocs&gulp
[09:41:28] Local gulp not found in d:\upupw\htdocs
[09:41:28] Try running: npm install gulp
d:\upupw\htdocs&npm install -G gulp
v8flags@1.0.1 install d:\upupw\htdocs\node_modules\g
node fetch.js
flags for v8 3.14.5.9 cached.
gulp@3.8.9 node_modules\gulp
├── interpret.3.7
├── pretty-hrtime.2.2
├── deprecated.0.1
├── archy.0.2
├── minimist@1.1.0
├── v8flags@1.0.1
├── semver@3.0.1
├── tildify@1.0.0 (user-home@1.1.0)
├── chalk.5.1 (escape-string-regexp@1.0.2, ansi-s
├── orchestrator.3.7 (stream-consume.1.0, seque
├── liftoff.13.5 (extend@1.3.0, flagged-respawn
├── vinyl-fs.3.10 (graceful-fs@3.0.4, mkdirp.5.
└── gulp-util@3.0.1 (lodash._reinterpolate@2.4.1, d
d:\upupw\htdocs&dir node_modules
驱动器 D 中的卷是 sbin
卷的序列号是 A85E-3C38
d:\upupw\htdocs\node_modules 的目录
4 个目录 81,285,898,240 可用字节
windows下 npm 参数区分大小写?
你试试npm install -g gulp?
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的npm install -g formidable 不成功,怎么回事啊,在win7上装的 - CNode技术社区
npm http GET
npm http 304
npm WARN package.json bytes.2.1 No repository field.
npm WARN package.json fresh.1.0 No repository field.
npm WARN package.json repository.2.0 No repository field.
npm WARN package.json cookie-signature.0.1 No repository field.
npm WARN package.json methods.0.1 No repository field.
npm WARN package.json range-parser.0.4 No repository field.
npm WARN package.json policyfile.0.4 ‘repositories’ (plural) Not supported.
npm WARN package.json Please pick one as the ‘repository’ field
npm WARN package.json dateformat.0.6-1.2.3 No repository field.
npm WARN package.json growl.7.0 No repository field.
npm WARN package.json bytes.2.0 No repository field.
npm WARN package.json pause.0.1 No repository field.
npm WARN package.json uid2.0.2 No repository field.
formidable.0.14 C:\Users\Administrator\AppData\Roaming\npm\node_modules\formidable
var formidable = require(‘formidable’);
module.js:340
Error: Cannot find module 'formidable’
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.&anonymous& (D:\node\test\server.js:5:18)
at Module._compile (module.js:456:26)
at Object.Module._extensions…js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
windows 下我建议用到的模块都安装到项目目录下…
基于 node 的node_modules 的搜索模式,默认的node_modules 几乎搜索不到…而且,windows 还有分区…
formidable 已经被包括在了express中了。你还安装它做什么?
直接:req.form 就可以取到form提交的input内容。
好像从某个版本开始global的module都不能直接用了把。
必须npm link一下
从guithub上将gz包下载下来,解压缩后拷到node_modules里使用即可。
全局安装的库,需要npm link一下,才能require的
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的local 方式 npm install 在子目录中「重复」安装 express - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
已注册用户请 &
PPA for Ubuntu
> ppa:chris-lea/node.js
local 方式 npm install 在子目录中「重复」安装 express
19:39:21 +08:00 · 1499 次点击
目录结构:
nodejs 主目录:~/code/nodejs/
nodejs 子项目:~/code/nodejs/sub_folder
主目录 安装 express
gentoo ~/code/nodejs $ npm install express --save
express@4.12.3 node_modules/express
├── merge-descriptors@1.0.0
├── utils-merge@1.0.0
├── cookie-signature@1.0.6
├── methods@1.1.1
├── cookie@0.1.2
├── fresh@0.2.4
├── escape-html@1.0.1
├── range-parser@1.0.2
├── content-type@1.0.1
├── finalhandler@0.3.4
├── vary@1.0.0
├── parseurl@1.3.0
├── serve-static@1.9.2
├── content-disposition@0.5.0
├── path-to-regexp@0.1.3
├── depd@1.0.0
├── qs@2.4.1
├── on-finished@2.2.0 (ee-first@1.1.0)
├── debug@2.1.3 (ms@0.7.0)
├── etag@1.5.1 (crc@3.2.1)
├── send@0.12.2 (destroy@1.0.3, ms@0.7.0, mime@1.3.4)
├── type-is@1.6.1 (media-typer@0.3.0, mime-types@2.0.10)
├── accepts@1.2.5 (negotiator@0.5.1, mime-types@2.0.10)
└── proxy-addr@1.0.7 (forwarded@0.1.0, ipaddr.js@0.1.9)
子目录 安装 express-generator
测试 express-generator 的 子目录 : ~/code/nodejs/test
gentoo ~/code/nodejs $ mkdir test && cd test
gentoo ~/code/nodejs/test $ npm install express-generator --save
npm WARN prefer global express-generator@4.12.1 should be installed with -g
express-generator@4.12.1 ../node_modules/express-generator
├── sorted-object@1.0.0
├── commander@2.6.0
└── mkdirp@0.5.0 (minimist@0.0.8)
express-generator 是安装在 nodejs 开发 主目录 下的 ~/code/nodejs/node_modules 目录:
gentoo /home/i/code/nodejs
$ tree -L 2 ~/code/nodejs/node_modules/
/home/i/code/nodejs/node_modules/
├── express
├── History.md
├── index.js
├── lib
├── LICENSE
├── node_modules
├── package.json
└── Readme.md
└── express-generator
├── bin
├── LICENSE
├── node_modules
├── package.json
├── README.md
└── templates
但发现在 主目录 和 子目录 下的 node_modules 都有安装 express
主目录 的 express 目录树:
主目录 下的 express 目录树,比 子目录 多安装了 debug 包:
gentoo /home/i/code/nodejs
$ tree -L 2 node_modules/express
node_modules/express
├── History.md
├── index.js
├── lib
├── application.js
├── express.js
├── middleware
├── request.js
├── response.js
├── router
├── utils.js
└── view.js
├── LICENSE
├── node_modules
├── accepts
├── content-disposition
├── content-type
├── cookie
├── cookie-signature
├── debug
├── depd
├── escape-html
├── etag
├── finalhandler
├── fresh
├── merge-descriptors
├── methods
├── on-finished
├── parseurl
├── path-to-regexp
├── proxy-addr
├── range-parser
├── send
├── serve-static
├── type-is
├── utils-merge
└── vary
├── package.json
└── Readme.md
28 directories, 11 files
子目录 的 express 目录树:
gentoo /home/i/code/nodejs/test
$ tree -L 2 node_modules/express/
node_modules/express/
├── History.md
├── index.js
├── lib
├── application.js
├── express.js
├── middleware
├── request.js
├── response.js
├── router
├── utils.js
└── view.js
├── LICENSE
├── node_modules
├── accepts
├── content-disposition
├── content-type
├── cookie
├── cookie-signature
├── depd
├── escape-html
├── etag
├── finalhandler
├── fresh
├── merge-descriptors
├── methods
├── on-finished
├── parseurl
├── path-to-regexp
├── proxy-addr
├── range-parser
├── send
├── serve-static
├── type-is
├── utils-merge
└── vary
├── package.json
└── Readme.md
27 directories, 11 files
为什么 子目录 不能复用 主目录 的 express 还要重复安装呢?
6 回复 &| &直到
13:24:18 +08:00
& & 20:31:10 +08:00
目录树太多了,看的不是很明白,但我最近遇到类似问题:
如果模块 a 依赖于 b,c;
而模块 b 也依赖于 c;
当我在安装模块 b 的时候,c 模块就只会安装 1 次,并且是在 a 模块下。
看你好像是分两次安装,第二次安装的时候估计不会检查你当前目录的父目录是否已经安装了你要依赖的模块吧。
不知道这样理解对不对。
& & 13:49:19 +08:00
唔,这个树展开的话每个都是当前根节点的所有依赖。
为神马不能复用呢? 因为版本不一定一样啊。。。
每个项目的依赖内容都完整搞下来,这样文件夹会大一点,但是项目的path清晰了,里面的依赖版本独立了,整个项目的可移植性也变强了。
想象一下你把某个项目做完,整个项目folder撸走,换个地方还能run是不是有点小激动呢?
& & 16:22:43 +08:00
@ 兄。
1. 我先在 父目录 安装 express
2. 然后在 子目录 安装 express-generator 。express-generator 以来 express
3. 安装 express-generator 时,没有检查,父目录已经安装过 express 又在 子目录 下 重复 安装了一遍 express
@ 兄。你的意思,这是正常现象。npm 使用 local 方式安装,不会检查 local 路径下已经有安装过的 package 即使版本满足依赖。。。。
& & 08:40:27 +08:00
你应该这么理解这个问题。
无论是你的父目录还是子目录还是express还是express-generator都是独立的项目,而每个项目的自己的依赖都在自己的目录里,不会往上回溯的。
所以如果子目录里面用了express-generator,而express-generator自己有任何依赖的内容的话,要不然是从express-generator的目录下面查找,要不然就是去global path里面查找了,不会特地查看项目上游的path里面有没有相关内容的。
甚至说express-generator依赖了某个npm,他都不会关心你的子项目里有没有,只关心express-generator的目录下面以及global下面有没有。
& & 08:45:37 +08:00
再多嘴说一句吧,你的依赖打开的太浅了。 你仔细去看下依赖的依赖就看明白了。。。
悲伤的故事。。。
& & 13:24:18 +08:00
@ 这样。。。原来是依赖查找路径的杯桑故事。。。
& · & 1110 人在线 & 最高记录 1847 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.7.3 · 41ms · UTC 05:04 · PVG 13:04 · LAX 22:04 · JFK 01:04? Do have faith in what you're doing.

我要回帖

更多关于 npm install d 的文章

 

随机推荐