[Nodejs 实战]准备Nodejs开发环境 + Express 3配置 + AngelJS配置

6 篇文章 0 订阅
1 篇文章 0 订阅

作者:disappearedgod
时间:2015-1-11

前言

新手入门,学习了http://blog.fens.me/nodejs-bower-intro/,但是发现该博客是在win环境下搭建的,因为与linux有些许差别,所以写了这个博客,并且上述博客时间太久远,一些东西改变了(例如express 3 4 之间分离),所以对于实战来讲,本博客有其现实价值。

正文

node安装
<pre><code>~ sudo apt-get install git</code>
~ git clone git://github.com/joyent/node.git正克隆到 'node'...remote: Counting objects: 135363, done.remote: Compressing objects: 100% (24/24), done.remote: Total 135363 (delta 1), reused 23 (delta 1)接收对象中: 100% (135363/135363), 112.62 MiB | 3.05 MiB/s, done.处理 delta 中: 100% (101055/101055), done.Checking out files: 100% (10177/10177), done.
 
 
xwh@xwh:~/BLOG_DIRECOTRY$ cd node
xwh@xwh:~/BLOG_DIRECOTRY/node$ pwd
/home/xwh/BLOG_DIRECOTRY/node

切换最新的release的版本v0.11.2-release


~ git checkout v0.11.2-release
Branch v0.11.2-release set up to track remote branch v0.11.2-release from origin.
Switched to a new branch 'v0.11.2-release'

进行安装


./configure
make
sudo make install

安装完成,查看node版本


~ node -v
-bash: /usr/bin/node: No such file or directory

提示错误,没有找到node,查一下node安装位置


~ whereis node
node: /usr/local/bin/node

增加软链接:node和npm到/usr/bin


~ sudo ln -s /usr/local/bin/node /usr/bin/node
~ sudo ln -s /usr/local/bin/npm /usr/bin/npm

我们再查看node和npm版本


~ node -v
v0.11.2
~ npm -v
1.2.21
安装express
sudo npm install express -g
Warning
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/cookie-signature/1.0.5
npm http GET https://registry.npmjs.org/depd
npm http GET https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/escape-html/1.0.1
npm http GET https://registry.npmjs.org/media-typer/0.3.0
npm http GET https://registry.npmjs.org/finalhandler/0.3.3
npm http GET https://registry.npmjs.org/fresh/0.2.4
npm http GET https://registry.npmjs.org/methods/1.1.1
npm http GET https://registry.npmjs.org/etag
npm http GET https://registry.npmjs.org/on-finished
npm http GET https://registry.npmjs.org/parseurl
npm http GET https://registry.npmjs.org/path-to-regexp/0.1.3
npm http GET https://registry.npmjs.org/proxy-addr
npm http GET https://registry.npmjs.org/qs/2.3.3
npm http GET https://registry.npmjs.org/range-parser
npm http GET https://registry.npmjs.org/send/0.10.1
npm http GET https://registry.npmjs.org/serve-static
npm http GET https://registry.npmjs.org/type-is
npm http GET https://registry.npmjs.org/vary
npm http GET https://registry.npmjs.org/cookie/0.1.2
npm http GET https://registry.npmjs.org/merge-descriptors/0.0.2
npm http GET https://registry.npmjs.org/utils-merge/1.0.0
npm http GET https://registry.npmjs.org/accepts
npm http GET https://registry.npmjs.org/content-disposition/0.5.0
npm http 304 https://registry.npmjs.org/escape-html/1.0.1
npm http 304 https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/depd
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.5
npm http 304 https://registry.npmjs.org/finalhandler/0.3.3
npm http 304 https://registry.npmjs.org/fresh/0.2.4
npm http 304 https://registry.npmjs.org/etag
npm http 304 https://registry.npmjs.org/methods/1.1.1
npm http 304 https://registry.npmjs.org/parseurl
npm http 304 https://registry.npmjs.org/on-finished
npm http 304 https://registry.npmjs.org/path-to-regexp/0.1.3
npm http 304 https://registry.npmjs.org/proxy-addr
npm http 304 https://registry.npmjs.org/range-parser
npm http 304 https://registry.npmjs.org/qs/2.3.3
npm http 304 https://registry.npmjs.org/type-is
npm http 304 https://registry.npmjs.org/send/0.10.1
npm http 304 https://registry.npmjs.org/serve-static
npm http 304 https://registry.npmjs.org/cookie/0.1.2
npm http 304 https://registry.npmjs.org/utils-merge/1.0.0
npm http 304 https://registry.npmjs.org/vary
npm http 304 https://registry.npmjs.org/merge-descriptors/0.0.2
npm http 304 https://registry.npmjs.org/accepts
npm http 304 https://registry.npmjs.org/media-typer/0.3.0
npm http 304 https://registry.npmjs.org/content-disposition/0.5.0
npm http GET https://registry.npmjs.org/crc/3.2.1
npm http GET https://registry.npmjs.org/mime-types
npm http GET https://registry.npmjs.org/negotiator/0.4.9
npm http GET https://registry.npmjs.org/ee-first/1.1.0
npm http GET https://registry.npmjs.org/mime-types
npm http GET https://registry.npmjs.org/forwarded
npm http GET https://registry.npmjs.org/ipaddr.js/0.1.6
npm http GET https://registry.npmjs.org/destroy/1.0.3
npm http GET https://registry.npmjs.org/mime/1.2.11
npm http GET https://registry.npmjs.org/ms/0.6.2
npm http 304 https://registry.npmjs.org/crc/3.2.1
npm http 304 https://registry.npmjs.org/negotiator/0.4.9
npm http 304 https://registry.npmjs.org/ee-first/1.1.0
npm http 304 https://registry.npmjs.org/mime-types
npm http 304 https://registry.npmjs.org/mime-types
npm http GET https://registry.npmjs.org/mime-db
npm http 304 https://registry.npmjs.org/mime/1.2.11
npm http 304 https://registry.npmjs.org/ipaddr.js/0.1.6
npm http 304 https://registry.npmjs.org/ms/0.6.2
npm http 304 https://registry.npmjs.org/destroy/1.0.3
npm http 304 https://registry.npmjs.org/forwarded
npm http 304 https://registry.npmjs.org/mime-db
npm WARN package.json github-url-from-git@1.1.1 No repository field.
npm WARN package.json assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.
express@4.10.7 /usr/local/lib/node_modules/express
├── merge-descriptors@0.0.2
├── utils-merge@1.0.0
├── methods@1.1.1
├── fresh@0.2.4
├── cookie@0.1.2
├── escape-html@1.0.1
├── range-parser@1.0.2
├── cookie-signature@1.0.5
├── finalhandler@0.3.3
├── vary@1.0.0
├── media-typer@0.3.0
├── parseurl@1.3.0
├── serve-static@1.7.2
├── content-disposition@0.5.0
├── path-to-regexp@0.1.3
├── depd@1.0.0
├── qs@2.3.3
├── etag@1.5.1 (crc@3.2.1)
├── on-finished@2.2.0 (ee-first@1.1.0)
├── debug@2.1.1 (ms@0.6.2)
├── send@0.10.1 (destroy@1.0.3, ms@0.6.2, on-finished@2.1.1, mime@1.2.11)
├── proxy-addr@1.0.5 (forwarded@0.1.0, ipaddr.js@0.1.6)
├── accepts@1.1.4 (negotiator@0.4.9, mime-types@2.0.7)
└── type-is@1.5.5 (mime-types@2.0.7)xwh@xwh:~/BLOG_DIRECOTRY/node$ 
检测问题
express -e nodejs-demo
The program 'express' is currently not installed. You can install it by typing:
sudo apt-get install node-express
express 已经把命令行工具分离出来了…
sudo npm install -g express-generator@3
xwh@xwh:~/BLOG_DIRECOTRY/node$ sudo npm remove express -g
xwh@xwh:~/BLOG_DIRECOTRY/node$ sudo npm install -g express-generator@3
npm http GET https://registry.npmjs.org/express-generator
npm http 200 https://registry.npmjs.org/express-generator
npm http GET https://registry.npmjs.org/express-generator/-/express-generator-3.0.0.tgz
npm http 200 https://registry.npmjs.org/express-generator/-/express-generator-3.0.0.tgz
npm http GET https://registry.npmjs.org/commander/1.3.2
npm http GET https://registry.npmjs.org/mkdirp/0.3.5
npm http 200 https://registry.npmjs.org/mkdirp/0.3.5
npm http GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz
npm http 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz
npm http 200 https://registry.npmjs.org/commander/1.3.2
npm http GET https://registry.npmjs.org/commander/-/commander-1.3.2.tgz
npm http 200 https://registry.npmjs.org/commander/-/commander-1.3.2.tgz
npm http GET https://registry.npmjs.org/keypress
npm http 200 https://registry.npmjs.org/keypress
npm http GET https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz
npm http 200 https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz
/usr/local/bin/express -> /usr/local/lib/node_modules/express-generator/bin/express
npm WARN package.json github-url-from-git@1.1.1 No repository field.
npm WARN package.json assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.
express-generator@3.0.0 /usr/local/lib/node_modules/express-generator
├── mkdirp@0.3.5
└── commander@1.3.2 (keypress@0.1.0)xwh@xwh:~/BLOG_DIRECOTRY/node$ sudo npm install -g express-generator@3

express -e nodejs-demo

xwh@xwh:~/BLOG_DIRECOTRY/node$ express -V
3.0.0


xwh@xwh:~/BLOG_DIRECOTRY/node$ express -e nodejs-demo

   create : nodejs-demo
   create : nodejs-demo/package.json
   create : nodejs-demo/app.js
   create : nodejs-demo/public
   create : nodejs-demo/public/images
   create : nodejs-demo/public/stylesheets
   create : nodejs-demo/public/stylesheets/style.css
   create : nodejs-demo/routes
   create : nodejs-demo/routes/index.js
   create : nodejs-demo/routes/user.js
   create : nodejs-demo/views
   create : nodejs-demo/views/index.ejs
   create : nodejs-demo/views/error.ejs
   create : nodejs-demo/bin
   create : nodejs-demo/bin/www
   create : nodejs-demo/public/javascripts

   install dependencies:
     $ cd nodejs-demo && npm install

   run the app:
     $ DEBUG=my-application ./bin/www
安装node
xwh@xwh:~/BLOG_DIRECOTRY/node$ ls
AUTHORS      common.gypi  CONTRIBUTING.md  LICENSE   nodejs-demo  test
benchmark    config.gypi  deps             Makefile  out          tools
BSDmakefile  config.mk    doc              node      README.md    vcbuild.bat
ChangeLog    configure    lib              node.gyp  src
xwh@xwh:~/BLOG_DIRECOTRY/node$ cd nodejs-demo/
xwh@xwh:~/BLOG_DIRECOTRY/node/nodejs-demo$ sudo npm install
结果(npm list里面没有空的即可)
npm WARN package.json application-name@0.0.1 No repository field.
npm WARN package.json application-name@0.0.1 No readme data.
npm http GET https://registry.npmjs.org/static-favicon
npm http GET https://registry.npmjs.org/ejs
npm http GET https://registry.npmjs.org/cookie-parser
npm http GET https://registry.npmjs.org/morgan
npm http GET https://registry.npmjs.org/body-parser
npm http GET https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/debug
npm http 200 https://registry.npmjs.org/cookie-parser
npm http GET https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.0.1.tgz
npm http 200 https://registry.npmjs.org/morgan
npm http GET https://registry.npmjs.org/morgan/-/morgan-1.0.1.tgz
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/express/-/express-3.4.8.tgz
npm http 200 https://registry.npmjs.org/body-parser
npm http GET https://registry.npmjs.org/body-parser/-/body-parser-1.0.2.tgz
npm http 200 https://registry.npmjs.org/static-favicon
npm WARN deprecated static-favicon@1.0.2: use serve-favicon module
npm http GET https://registry.npmjs.org/static-favicon/-/static-favicon-1.0.2.tgz
npm http 304 https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/debug/-/debug-0.7.4.tgz
npm http 200 https://registry.npmjs.org/ejs
npm http GET https://registry.npmjs.org/ejs/-/ejs-0.8.8.tgz
npm http 200 https://registry.npmjs.org/express/-/express-3.4.8.tgz
npm http 200 https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.0.1.tgz
npm http 200 https://registry.npmjs.org/body-parser/-/body-parser-1.0.2.tgz
npm http 200 https://registry.npmjs.org/morgan/-/morgan-1.0.1.tgz
npm http 200 https://registry.npmjs.org/debug/-/debug-0.7.4.tgz
npm http 200 https://registry.npmjs.org/ejs/-/ejs-0.8.8.tgz
npm http 200 https://registry.npmjs.org/static-favicon/-/static-favicon-1.0.2.tgz
npm http GET https://registry.npmjs.org/bytes/0.3.0
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/cookie-signature/1.0.3
npm http GET https://registry.npmjs.org/qs
npm http GET https://registry.npmjs.org/raw-body
npm http GET https://registry.npmjs.org/type-is
npm http GET https://registry.npmjs.org/connect/2.12.0
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/commander/1.3.2
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/fresh/0.2.0
npm http GET https://registry.npmjs.org/methods/0.1.0
npm http GET https://registry.npmjs.org/send/0.1.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.5
npm http GET https://registry.npmjs.org/cookie-signature/1.0.1
npm http GET https://registry.npmjs.org/merge-descriptors/0.0.1
npm http 200 https://registry.npmjs.org/bytes/0.3.0
npm http GET https://registry.npmjs.org/bytes/-/bytes-0.3.0.tgz
npm http 200 https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz
npm http 304 https://registry.npmjs.org/type-is
npm http GET https://registry.npmjs.org/type-is/-/type-is-1.1.0.tgz
npm http 200 https://registry.npmjs.org/cookie-signature/1.0.3
npm http GET https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.3.tgz
npm http 200 https://registry.npmjs.org/qs
npm http GET https://registry.npmjs.org/qs/-/qs-0.6.6.tgz
npm http 200 https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz
npm http 304 https://registry.npmjs.org/commander/1.3.2
npm http 200 https://registry.npmjs.org/connect/2.12.0
npm http GET https://registry.npmjs.org/connect/-/connect-2.12.0.tgz
npm http 200 https://registry.npmjs.org/raw-body
npm http GET https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz
npm http 200 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz
npm http 200 https://registry.npmjs.org/fresh/0.2.0
npm http GET https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz
npm http 200 https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz
npm http 200 https://registry.npmjs.org/bytes/-/bytes-0.3.0.tgz
npm http 200 https://registry.npmjs.org/methods/0.1.0
npm http GET https://registry.npmjs.org/methods/-/methods-0.1.0.tgz
npm http 304 https://registry.npmjs.org/mkdirp/0.3.5
npm http 200 https://registry.npmjs.org/cookie-signature/1.0.1
npm http GET https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz
npm http 200 https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz
npm WARN package.json range-parser@0.0.4 No repository field.
npm http 200 https://registry.npmjs.org/connect/-/connect-2.12.0.tgz
npm http 200 https://registry.npmjs.org/type-is/-/type-is-1.1.0.tgz
npm http 200 https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.3.tgz
npm http 200 https://registry.npmjs.org/send/0.1.4
npm http GET https://registry.npmjs.org/send/-/send-0.1.4.tgz
npm http 200 https://registry.npmjs.org/qs/-/qs-0.6.6.tgz
npm http 200 https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz
npm http 200 https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz
npm http GET https://registry.npmjs.org/bytes
npm http GET https://registry.npmjs.org/string_decoder
npm http GET https://registry.npmjs.org/mime
npm http 200 https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz
npm http 200 https://registry.npmjs.org/merge-descriptors/0.0.1
npm http GET https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.1.tgz
npm http 200 https://registry.npmjs.org/methods/-/methods-0.1.0.tgz
npm http 200 https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm http 200 https://registry.npmjs.org/send/-/send-0.1.4.tgz
npm http 200 https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.1.tgz
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/keypress
npm http GET https://registry.npmjs.org/batch/0.5.0
npm http GET https://registry.npmjs.org/qs/0.6.6
npm http GET https://registry.npmjs.org/bytes/0.2.1
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http GET https://registry.npmjs.org/uid2/0.0.3
npm http GET https://registry.npmjs.org/raw-body/1.1.2
npm http GET https://registry.npmjs.org/negotiator/0.3.0
npm http GET https://registry.npmjs.org/multiparty/2.2.0
npm http 200 https://registry.npmjs.org/string_decoder
npm http GET https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz
npm http 200 https://registry.npmjs.org/batch/0.5.0
npm http GET https://registry.npmjs.org/batch/-/batch-0.5.0.tgz
npm http 200 https://registry.npmjs.org/bytes
npm http GET https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz
npm http 200 https://registry.npmjs.org/qs/0.6.6
npm http GET https://registry.npmjs.org/qs/-/qs-0.6.6.tgz
npm http 200 https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz
npm http 200 https://registry.npmjs.org/mime
npm http 200 https://registry.npmjs.org/bytes/0.2.1
npm http GET https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz
npm http 304 https://registry.npmjs.org/keypress
npm http 200 https://registry.npmjs.org/pause/0.0.1
npm http GET https://registry.npmjs.org/pause/-/pause-0.0.1.tgz
npm http 200 https://registry.npmjs.org/batch/-/batch-0.5.0.tgz
npm WARN package.json batch@0.5.0 No repository field.
npm http 200 https://registry.npmjs.org/mime
npm http 200 https://registry.npmjs.org/uid2/0.0.3
npm http GET https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz
npm http 200 https://registry.npmjs.org/raw-body/1.1.2
npm http GET https://registry.npmjs.org/raw-body/-/raw-body-1.1.2.tgz
npm http 200 https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz
npm http 200 https://registry.npmjs.org/raw-body/-/raw-body-1.1.2.tgz
npm http 200 https://registry.npmjs.org/negotiator/0.3.0
npm http GET https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz
npm http 200 https://registry.npmjs.org/qs/-/qs-0.6.6.tgz
npm http 200 https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz
npm WARN package.json bytes@0.2.1 No repository field.
npm http 200 https://registry.npmjs.org/pause/-/pause-0.0.1.tgz
npm WARN package.json pause@0.0.1 No repository field.
npm http 200 https://registry.npmjs.org/multiparty/2.2.0
npm http GET https://registry.npmjs.org/multiparty/-/multiparty-2.2.0.tgz
npm http 200 https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz
npm WARN package.json uid2@0.0.3 No repository field.
npm WARN package.json uid2@0.0.3 No readme data.
npm http 200 https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz
npm http 200 https://registry.npmjs.org/multiparty/-/multiparty-2.2.0.tgz
npm http GET https://registry.npmjs.org/readable-stream
npm http GET https://registry.npmjs.org/stream-counter
npm http 200 https://registry.npmjs.org/stream-counter
npm http GET https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz
npm http 200 https://registry.npmjs.org/readable-stream
npm http GET https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13-1.tgz
npm http 200 https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz
npm http 200 https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13-1.tgz
npm http GET https://registry.npmjs.org/core-util-is
npm http GET https://registry.npmjs.org/isarray/0.0.1
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/string_decoder
npm http 200 https://registry.npmjs.org/core-util-is
npm http GET https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz
npm http 200 https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/string_decoder
npm http GET https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz
npm http 200 https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz
npm http 200 https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz
npm http 200 https://registry.npmjs.org/isarray/0.0.1
npm http GET https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz
npm http 200 https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz
debug@0.7.4 node_modules/debug

static-favicon@1.0.2 node_modules/static-favicon

ejs@0.8.8 node_modules/ejs

morgan@1.0.1 node_modules/morgan
└── bytes@0.3.0

cookie-parser@1.0.1 node_modules/cookie-parser
├── cookie-signature@1.0.3
└── cookie@0.1.0

body-parser@1.0.2 node_modules/body-parser
├── qs@0.6.6
├── type-is@1.1.0 (mime@1.2.11)
└── raw-body@1.1.7 (string_decoder@0.10.31, bytes@1.0.0)

express@3.4.8 node_modules/express
├── methods@0.1.0
├── merge-descriptors@0.0.1
├── range-parser@0.0.4
├── cookie-signature@1.0.1
├── fresh@0.2.0
├── buffer-crc32@0.2.1
├── cookie@0.1.0
├── mkdirp@0.3.5
├── send@0.1.4 (mime@1.2.11)
├── commander@1.3.2 (keypress@0.1.0)
└── connect@2.12.0 (uid2@0.0.3, pause@0.0.1, qs@0.6.6, bytes@0.2.1, raw-body@1.1.2, batch@0.5.0, negotiator@0.3.0, multiparty@2.2.0)

安装angular basic
express -e angular-basic

   create : angular-basic
   create : angular-basic/package.json
   create : angular-basic/app.js
   create : angular-basic/public
   create : angular-basic/public/images
   create : angular-basic/public/stylesheets
   create : angular-basic/public/stylesheets/style.css
   create : angular-basic/routes
   create : angular-basic/routes/index.js
   create : angular-basic/routes/user.js
   create : angular-basic/views
   create : angular-basic/views/index.ejs
   create : angular-basic/views/error.ejs
   create : angular-basic/bin
   create : angular-basic/bin/www
   create : angular-basic/public/javascripts

   install dependencies:
     $ cd angular-basic && npm install

   run the app:
     $ DEBUG=my-application ./bin/www

安装angular-basic
cd angular-basic 
sudo npm install
[sudo] password for xwh: 
npm WARN package.json application-name@0.0.1 No repository field.
npm WARN package.json application-name@0.0.1 No readme data.
npm http GET https://registry.npmjs.org/static-favicon
npm http GET https://registry.npmjs.org/morgan
npm http GET https://registry.npmjs.org/cookie-parser
npm http GET https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/body-parser
npm http GET https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/ejs
npm http 304 https://registry.npmjs.org/static-favicon
npm WARN deprecated static-favicon@1.0.2: use serve-favicon module
npm http 304 https://registry.npmjs.org/debug
npm http 200 https://registry.npmjs.org/morgan
npm http 200 https://registry.npmjs.org/cookie-parser
npm http 200 https://registry.npmjs.org/body-parser
npm http 200 https://registry.npmjs.org/ejs
npm http 200 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/type-is
npm http GET https://registry.npmjs.org/cookie-signature/1.0.3
npm http GET https://registry.npmjs.org/bytes/0.3.0
npm http GET https://registry.npmjs.org/raw-body
npm http GET https://registry.npmjs.org/qs
npm http GET https://registry.npmjs.org/connect/2.12.0
npm http GET https://registry.npmjs.org/commander/1.3.2
npm http GET https://registry.npmjs.org/mkdirp/0.3.5
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/fresh/0.2.0
npm http GET https://registry.npmjs.org/methods/0.1.0
npm http GET https://registry.npmjs.org/cookie-signature/1.0.1
npm http GET https://registry.npmjs.org/send/0.1.4
npm http GET https://registry.npmjs.org/merge-descriptors/0.0.1
npm http 304 https://registry.npmjs.org/type-is
npm http 304 https://registry.npmjs.org/raw-body
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http 304 https://registry.npmjs.org/qs
npm http GET https://registry.npmjs.org/bytes
npm http GET https://registry.npmjs.org/string_decoder
npm http GET https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/bytes/0.3.0
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.3
npm http 304 https://registry.npmjs.org/mkdirp/0.3.5
npm http 304 https://registry.npmjs.org/connect/2.12.0
npm http 304 https://registry.npmjs.org/commander/1.3.2
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http 304 https://registry.npmjs.org/methods/0.1.0
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm WARN package.json range-parser@0.0.4 No repository field.
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.1
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm http 304 https://registry.npmjs.org/send/0.1.4
npm http 304 https://registry.npmjs.org/bytes
npm http 304 https://registry.npmjs.org/string_decoder
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/fresh/0.2.0
npm http 304 https://registry.npmjs.org/merge-descriptors/0.0.1
npm http GET https://registry.npmjs.org/keypress
npm http GET https://registry.npmjs.org/qs/0.6.6
npm http GET https://registry.npmjs.org/bytes/0.2.1
npm http GET https://registry.npmjs.org/batch/0.5.0
npm http GET https://registry.npmjs.org/uid2/0.0.3
npm http GET https://registry.npmjs.org/raw-body/1.1.2
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http GET https://registry.npmjs.org/negotiator/0.3.0
npm http GET https://registry.npmjs.org/multiparty/2.2.0
npm http 304 https://registry.npmjs.org/keypress
npm http 304 https://registry.npmjs.org/qs/0.6.6
npm http 304 https://registry.npmjs.org/raw-body/1.1.2
npm http 304 https://registry.npmjs.org/bytes/0.2.1
npm WARN package.json bytes@0.2.1 No repository field.
npm http 304 https://registry.npmjs.org/pause/0.0.1
npm WARN package.json pause@0.0.1 No repository field.
npm http 304 https://registry.npmjs.org/multiparty/2.2.0
npm http 304 https://registry.npmjs.org/uid2/0.0.3
npm WARN package.json uid2@0.0.3 No repository field.
npm WARN package.json uid2@0.0.3 No readme data.
npm http 304 https://registry.npmjs.org/batch/0.5.0
npm WARN package.json batch@0.5.0 No repository field.
npm http 304 https://registry.npmjs.org/negotiator/0.3.0
npm http GET https://registry.npmjs.org/readable-stream
npm http GET https://registry.npmjs.org/stream-counter
npm http 304 https://registry.npmjs.org/stream-counter
npm http 304 https://registry.npmjs.org/readable-stream
npm http GET https://registry.npmjs.org/core-util-is
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/isarray/0.0.1
npm http 304 https://registry.npmjs.org/core-util-is
npm http 304 https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/isarray/0.0.1
debug@0.7.4 node_modules/debug

static-favicon@1.0.2 node_modules/static-favicon

ejs@0.8.8 node_modules/ejs

morgan@1.0.1 node_modules/morgan
└── bytes@0.3.0

cookie-parser@1.0.1 node_modules/cookie-parser
├── cookie-signature@1.0.3
└── cookie@0.1.0

body-parser@1.0.2 node_modules/body-parser
├── qs@0.6.6
├── raw-body@1.1.7 (bytes@1.0.0, string_decoder@0.10.31)
└── type-is@1.1.0 (mime@1.2.11)

express@3.4.8 node_modules/express
├── methods@0.1.0
├── cookie-signature@1.0.1
├── buffer-crc32@0.2.1
├── merge-descriptors@0.0.1
├── range-parser@0.0.4
├── fresh@0.2.0
├── cookie@0.1.0
├── mkdirp@0.3.5
├── send@0.1.4 (mime@1.2.11)
├── commander@1.3.2 (keypress@0.1.0)
└── connect@2.12.0 (uid2@0.0.3, pause@0.0.1, qs@0.6.6, bytes@0.2.1, raw-body@1.1.2, batch@0.5.0, negotiator@0.3.0, multiparty@2.2.0)

部署
xwh@xwh:~/BLOG_DIRECOTRY/angular-basic$ mkdir app
xwh@xwh:~/BLOG_DIRECOTRY/angular-basic$ mkdir app/scripts
xwh@xwh:~/BLOG_DIRECOTRY/angular-basic$ mkdir app/scripts/angular
xwh@xwh:~/BLOG_DIRECOTRY/angular-basic$ mkdir app/styles
xwh@xwh:~/BLOG_DIRECOTRY/angular-basic$ mkdir app/views
xwh@xwh:~/BLOG_DIRECOTRY/angular-basic$ mkdir app/views/component
xwh@xwh:~/BLOG_DIRECOTRY/angular-basic$ mkdir app/views/tpl
xwh@xwh:~/BLOG_DIRECOTRY/angular-basic$ touch app/index.html
xwh@xwh:~/BLOG_DIRECOTRY/angular-basic$ touch app/scripts/angular/app.js
xwh@xwh:~/BLOG_DIRECOTRY/angular-basic$ touch app/scripts/angular/controllers.jsxwh@xwh:~/BLOG_DIRECOTRY/angular-basic$ touch app/styles/main.css
xwh@xwh:~/BLOG_DIRECOTRY/angular-basic$ touch app/views/tpl/welcome.html
xwh@xwh:~/BLOG_DIRECOTRY/angular-basic$ echo "aaaa">app/index.html
配置app.js(angular-basic 目录下)
var express = require('express')
    , path = require('path')
    , ejs = require('ejs')
    , app = express()
    , server = require('http').createServer(app);

app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.engine('.html', ejs.__express);
app.set('view engine', 'html'); //替换文件扩展名ejs为html
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'app')));

if (app.get('env') === 'development') {
    app.use(express.errorHandler());
}

// angular启动页
app.get('/', function (req, res) {
    res.sendfile('app/index.html');
});

server.listen(app.get('port'), function () {
    console.log('Express server listening on port ' + app.get('port'));
});


目录解释:

  • app目录: Angular项目的根目录
  • scripts目录: 存放Javascript脚本目录
  • scripts\angular目录: 存放Angular Javascript脚本目录
  • styles目录: 存放css的目录
  • views目录: 存放html的目录
  • views\component目录: 存放html的自定义组件目录
  • views\tpl目录: 存放html的目录

文件解释:

  • app\index.html: Angular项目的入口文件
  • styles\main.css: Angular项目的css文件
  • scripts\angular\app.js: Angular项目全局配置文件
  • scripts\angular\controllers.js: Angular项目全局控制器文件/li>
  • views\tpl\welcome.html: 欢迎页

安装bower
全局安装bower\
sudo npm install bower -g
执行结果
npm http GET https://registry.npmjs.org/bower
npm http 200 https://registry.npmjs.org/bower
npm http GET https://registry.npmjs.org/bower/-/bower-1.3.12.tgz
npm http 200 https://registry.npmjs.org/bower/-/bower-1.3.12.tgz
npm http GET https://registry.npmjs.org/bower-config
npm http GET https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/archy/0.0.2
npm http GET https://registry.npmjs.org/bower-endpoint-parser
npm http GET https://registry.npmjs.org/bower-json
npm http GET https://registry.npmjs.org/bower-logger
npm http GET https://registry.npmjs.org/bower-registry-client
npm http GET https://registry.npmjs.org/cardinal/0.4.0
npm http GET https://registry.npmjs.org/chalk/0.5.0
npm http GET https://registry.npmjs.org/chmodr/0.1.0
npm http GET https://registry.npmjs.org/decompress-zip/0.0.8
npm http GET https://registry.npmjs.org/fstream
npm http GET https://registry.npmjs.org/fstream-ignore
npm http GET https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/handlebars
npm http GET https://registry.npmjs.org/inquirer/0.7.1
npm http GET https://registry.npmjs.org/insight/0.4.3
npm http GET https://registry.npmjs.org/is-root
npm http GET https://registry.npmjs.org/junk
npm http GET https://registry.npmjs.org/lockfile
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/mkdirp/0.5.0
npm http GET https://registry.npmjs.org/mout
npm http GET https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/opn
npm http GET https://registry.npmjs.org/osenv/0.1.0
npm http GET https://registry.npmjs.org/p-throttler/0.1.0
npm http GET https://registry.npmjs.org/promptly/0.2.0
npm http GET https://registry.npmjs.org/q
npm http GET https://registry.npmjs.org/request
npm http GET https://registry.npmjs.org/request-progress/0.3.0
npm http GET https://registry.npmjs.org/retry/0.6.0
npm http GET https://registry.npmjs.org/rimraf
npm http GET https://registry.npmjs.org/semver
npm http GET https://registry.npmjs.org/shell-quote
npm http GET https://registry.npmjs.org/stringify-object
npm http GET https://registry.npmjs.org/tar-fs/0.5.2
npm http GET https://registry.npmjs.org/tmp/0.0.23
npm http GET https://registry.npmjs.org/update-notifier/0.2.0
npm http GET https://registry.npmjs.org/which
npm http 200 https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz
npm http 200 https://registry.npmjs.org/archy/0.0.2
npm http GET https://registry.npmjs.org/archy/-/archy-0.0.2.tgz
npm http 200 https://registry.npmjs.org/bower-json
npm http GET https://registry.npmjs.org/bower-json/-/bower-json-0.4.0.tgz
npm http 200 https://registry.npmjs.org/bower-config
npm http GET https://registry.npmjs.org/bower-config/-/bower-config-0.5.2.tgz
npm http 200 https://registry.npmjs.org/bower-endpoint-parser
npm http GET https://registry.npmjs.org/bower-endpoint-parser/-/bower-endpoint-parser-0.2.2.tgz
npm http 200 https://registry.npmjs.org/bower-logger
npm http GET https://registry.npmjs.org/bower-logger/-/bower-logger-0.2.2.tgz
npm http 200 https://registry.npmjs.org/chalk/0.5.0
npm http GET https://registry.npmjs.org/chalk/-/chalk-0.5.0.tgz
npm http 200 https://registry.npmjs.org/cardinal/0.4.0
npm http GET https://registry.npmjs.org/cardinal/-/cardinal-0.4.0.tgz
npm http 200 https://registry.npmjs.org/chmodr/0.1.0
npm http GET https://registry.npmjs.org/chmodr/-/chmodr-0.1.0.tgz
npm http 200 https://registry.npmjs.org/fstream-ignore
npm http GET https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.2.tgz
npm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz
npm http 200 https://registry.npmjs.org/archy/-/archy-0.0.2.tgz
npm http 200 https://registry.npmjs.org/decompress-zip/0.0.8
npm http GET https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.0.8.tgz
npm http 200 https://registry.npmjs.org/bower-logger/-/bower-logger-0.2.2.tgz
npm http 200 https://registry.npmjs.org/bower-config/-/bower-config-0.5.2.tgz
npm http 200 https://registry.npmjs.org/chalk/-/chalk-0.5.0.tgz
npm http 200 https://registry.npmjs.org/bower-json/-/bower-json-0.4.0.tgz
npm http 200 https://registry.npmjs.org/fstream
npm http GET https://registry.npmjs.org/fstream/-/fstream-1.0.3.tgz
npm http 200 https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz
npm http 200 https://registry.npmjs.org/cardinal/-/cardinal-0.4.0.tgz
npm http 200 https://registry.npmjs.org/bower-endpoint-parser/-/bower-endpoint-parser-0.2.2.tgz
npm http 200 https://registry.npmjs.org/chmodr/-/chmodr-0.1.0.tgz
npm http 200 https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.2.tgz
npm http 200 https://registry.npmjs.org/bower-registry-client
npm http GET https://registry.npmjs.org/bower-registry-client/-/bower-registry-client-0.2.2.tgz
npm http 200 https://registry.npmjs.org/inquirer/0.7.1
npm http GET https://registry.npmjs.org/inquirer/-/inquirer-0.7.1.tgz
npm http 200 https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.0.8.tgz
npm http 200 https://registry.npmjs.org/fstream/-/fstream-1.0.3.tgz
npm http 200 https://registry.npmjs.org/insight/0.4.3
npm http GET https://registry.npmjs.org/insight/-/insight-0.4.3.tgz
npm http 200 https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz
npm http 200 https://registry.npmjs.org/junk
npm http GET https://registry.npmjs.org/junk/-/junk-1.0.0.tgz
npm http 200 https://registry.npmjs.org/lockfile
npm http GET https://registry.npmjs.org/lockfile/-/lockfile-1.0.0.tgz
npm http 200 https://registry.npmjs.org/junk/-/junk-1.0.0.tgz
npm http 200 https://registry.npmjs.org/is-root
npm http GET https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz
npm http 200 https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/glob/-/glob-4.0.6.tgz
npm http 200 https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz
npm http 200 https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz
npm http 200 https://registry.npmjs.org/mkdirp/0.5.0
npm http GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz
npm http 200 https://registry.npmjs.org/inquirer/-/inquirer-0.7.1.tgz
npm http 200 https://registry.npmjs.org/insight/-/insight-0.4.3.tgz
npm http 200 https://registry.npmjs.org/glob/-/glob-4.0.6.tgz
npm http 200 https://registry.npmjs.org/bower-registry-client/-/bower-registry-client-0.2.2.tgz
npm http 200 https://registry.npmjs.org/handlebars
npm http 200 https://registry.npmjs.org/osenv/0.1.0
npm http GET https://registry.npmjs.org/handlebars/-/handlebars-2.0.0.tgz
npm http GET https://registry.npmjs.org/osenv/-/osenv-0.1.0.tgz
npm http 200 https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz
npm http 200 https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz
npm http 200 https://registry.npmjs.org/opn
npm http GET https://registry.npmjs.org/opn/-/opn-1.0.1.tgz
npm http 200 https://registry.npmjs.org/lockfile/-/lockfile-1.0.0.tgz
npm http 200 https://registry.npmjs.org/p-throttler/0.1.0
npm http GET https://registry.npmjs.org/p-throttler/-/p-throttler-0.1.0.tgz
npm http 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz
npm http 200 https://registry.npmjs.org/handlebars/-/handlebars-2.0.0.tgz
npm http 200 https://registry.npmjs.org/request-progress/0.3.0
npm http GET https://registry.npmjs.org/request-progress/-/request-progress-0.3.0.tgz
npm http 200 https://registry.npmjs.org/promptly/0.2.0
npm http GET https://registry.npmjs.org/promptly/-/promptly-0.2.0.tgz
npm http 200 https://registry.npmjs.org/retry/0.6.0
npm http GET https://registry.npmjs.org/retry/-/retry-0.6.0.tgz
npm http 200 https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz
npm http 200 https://registry.npmjs.org/opn/-/opn-1.0.1.tgz
npm http 200 https://registry.npmjs.org/mout
npm http GET https://registry.npmjs.org/mout/-/mout-0.9.1.tgz
npm http 200 https://registry.npmjs.org/p-throttler/-/p-throttler-0.1.0.tgz
npm http 200 https://registry.npmjs.org/request-progress/-/request-progress-0.3.0.tgz
npm http 200 https://registry.npmjs.org/promptly/-/promptly-0.2.0.tgz
npm http 200 https://registry.npmjs.org/retry/-/retry-0.6.0.tgz
npm http 200 https://registry.npmjs.org/mout/-/mout-0.9.1.tgz
npm http 200 https://registry.npmjs.org/rimraf
npm http GET https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz
npm http 200 https://registry.npmjs.org/osenv/-/osenv-0.1.0.tgz
npm http 200 https://registry.npmjs.org/shell-quote
npm http GET https://registry.npmjs.org/shell-quote/-/shell-quote-1.4.2.tgz
npm http 200 https://registry.npmjs.org/shell-quote/-/shell-quote-1.4.2.tgz
npm http 200 https://registry.npmjs.org/tar-fs/0.5.2
npm http GET https://registry.npmjs.org/tar-fs/-/tar-fs-0.5.2.tgz
npm http 200 https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz
npm http 200 https://registry.npmjs.org/semver
npm http GET https://registry.npmjs.org/semver/-/semver-2.3.2.tgz
npm http 200 https://registry.npmjs.org/tar-fs/-/tar-fs-0.5.2.tgz
npm http 200 https://registry.npmjs.org/tmp/0.0.23
npm http GET https://registry.npmjs.org/tmp/-/tmp-0.0.23.tgz
npm http 200 https://registry.npmjs.org/update-notifier/0.2.0
npm http GET https://registry.npmjs.org/update-notifier/-/update-notifier-0.2.0.tgz
npm http 200 https://registry.npmjs.org/semver/-/semver-2.3.2.tgz
npm http 200 https://registry.npmjs.org/tmp/-/tmp-0.0.23.tgz
npm http 200 https://registry.npmjs.org/which
npm http GET https://registry.npmjs.org/which/-/which-1.0.8.tgz
npm http 200 https://registry.npmjs.org/stringify-object
npm http GET https://registry.npmjs.org/stringify-object/-/stringify-object-1.0.0.tgz
npm http 200 https://registry.npmjs.org/update-notifier/-/update-notifier-0.2.0.tgz
npm http 200 https://registry.npmjs.org/which/-/which-1.0.8.tgz
npm http 200 https://registry.npmjs.org/stringify-object/-/stringify-object-1.0.0.tgz
npm http 200 https://registry.npmjs.org/request
npm http GET https://registry.npmjs.org/request/-/request-2.42.0.tgz
npm http 200 https://registry.npmjs.org/request/-/request-2.42.0.tgz
npm http 200 https://registry.npmjs.org/q
npm http GET https://registry.npmjs.org/q/-/q-1.0.1.tgz
npm http 200 https://registry.npmjs.org/q/-/q-1.0.1.tgz
npm http GET https://registry.npmjs.org/has-ansi
npm http GET https://registry.npmjs.org/strip-ansi
npm http GET https://registry.npmjs.org/supports-color
npm http GET https://registry.npmjs.org/ansi-styles
npm http GET https://registry.npmjs.org/escape-string-regexp
npm http GET https://registry.npmjs.org/semver-diff
npm http GET https://registry.npmjs.org/latest-version
npm http GET https://registry.npmjs.org/string-length
npm http GET https://registry.npmjs.org/chalk
npm http GET https://registry.npmjs.org/configstore
npm http GET https://registry.npmjs.org/inquirer
npm http GET https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/chalk
npm http GET https://registry.npmjs.org/lodash.debounce
npm http GET https://registry.npmjs.org/configstore
npm http GET https://registry.npmjs.org/object-assign
npm http GET https://registry.npmjs.org/os-name
npm http GET https://registry.npmjs.org/tough-cookie
npm http GET https://registry.npmjs.org/request
npm http GET https://registry.npmjs.org/throttleit
npm http GET https://registry.npmjs.org/read
npm http GET https://registry.npmjs.org/tar-stream
npm http GET https://registry.npmjs.org/mkdirp
npm http GET https://registry.npmjs.org/pump
npm http GET https://registry.npmjs.org/q
npm http GET https://registry.npmjs.org/osenv/0.0.3
npm http GET https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/array-reduce
npm http GET https://registry.npmjs.org/array-map
npm http GET https://registry.npmjs.org/jsonify
npm http GET https://registry.npmjs.org/array-filter
npm http GET https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/fstream
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/intersect
npm http GET https://registry.npmjs.org/deep-extend
npm http GET https://registry.npmjs.org/mkpath
npm http GET https://registry.npmjs.org/binary
npm http GET https://registry.npmjs.org/touch/0.0.2
npm http GET https://registry.npmjs.org/readable-stream
npm http GET https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/minimist/0.0.8
npm http GET https://registry.npmjs.org/cli-color
npm http GET https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/figures
npm http GET https://registry.npmjs.org/mute-stream/0.0.4
npm http GET https://registry.npmjs.org/readline2
npm http GET https://registry.npmjs.org/rx
npm http GET https://registry.npmjs.org/through
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/request-replay
npm http GET https://registry.npmjs.org/mkdirp
npm http GET https://registry.npmjs.org/request
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/redeyed
npm http GET https://registry.npmjs.org/bl
npm http GET https://registry.npmjs.org/caseless
npm http GET https://registry.npmjs.org/forever-agent
npm http GET https://registry.npmjs.org/json-stringify-safe
npm http GET https://registry.npmjs.org/node-uuid
npm http GET https://registry.npmjs.org/tunnel-agent
npm http GET https://registry.npmjs.org/tough-cookie
npm http GET https://registry.npmjs.org/form-data
npm http GET https://registry.npmjs.org/http-signature
npm http GET https://registry.npmjs.org/oauth-sign
npm http GET https://registry.npmjs.org/hawk/1.1.1
npm http GET https://registry.npmjs.org/aws-sign2
npm http GET https://registry.npmjs.org/stringstream
npm http GET https://registry.npmjs.org/qs
npm http GET https://registry.npmjs.org/mime-types
npm http GET https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/once
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/uglify-js
npm http 200 https://registry.npmjs.org/has-ansi
npm http 200 https://registry.npmjs.org/supports-color
npm http 200 https://registry.npmjs.org/ansi-styles
npm ERR! Error: No compatible version found: supports-color@'^0.2.0'
npm ERR! Valid install targets:
npm ERR! ["0.2.0","1.0.0","1.1.0","1.2.0"]
npm ERR!     at installTargetsError (/usr/local/lib/node_modules/npm/lib/cache.js:709:10)
npm ERR!     at /usr/local/lib/node_modules/npm/lib/cache.js:631:10
npm ERR!     at saved (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js:138:7)
npm ERR!     at Object.oncomplete (fs.js:94:15)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Linux 3.8.13.13-cdos
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "bower" "-g"
npm ERR! cwd /home/xwh/BLOG_DIRECOTRY
npm ERR! node -v v0.11.2
npm ERR! npm -v 1.2.21
npm http 200 https://registry.npmjs.org/semver-diff
npm http 200 https://registry.npmjs.org/string-length
npm http 200 https://registry.npmjs.org/escape-string-regexp
npm http 200 https://registry.npmjs.org/latest-version
npm http 200 https://registry.npmjs.org/chalk
npm http 200 https://registry.npmjs.org/strip-ansi
npm http 200 https://registry.npmjs.org/chalk
npm http 200 https://registry.npmjs.org/configstore
npm http 200 https://registry.npmjs.org/lodash.debounce
npm http 200 https://registry.npmjs.org/configstore
npm http 200 https://registry.npmjs.org/os-name
npm http 304 https://registry.npmjs.org/request
npm http 200 https://registry.npmjs.org/object-assign
npm http 200 https://registry.npmjs.org/throttleit
npm http GET https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz
npm http 200 https://registry.npmjs.org/inquirer
npm http 200 https://registry.npmjs.org/read
npm http GET https://registry.npmjs.org/read/-/read-1.0.5.tgz
npm http 200 https://registry.npmjs.org/async
npm http 200 https://registry.npmjs.org/pump
npm http 200 https://registry.npmjs.org/mkdirp
npm http 304 https://registry.npmjs.org/q
npm http GET https://registry.npmjs.org/q/-/q-0.9.7.tgz
npm http 200 https://registry.npmjs.org/osenv/0.0.3
npm http GET https://registry.npmjs.org/osenv/-/osenv-0.0.3.tgz
npm http 200 https://registry.npmjs.org/read/-/read-1.0.5.tgz
npm http GET https://registry.npmjs.org/mute-stream
npm http 304 https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz
npm http 200 https://registry.npmjs.org/tar-stream
npm http 200 https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz
npm http 200 https://registry.npmjs.org/array-map
npm http GET https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz
npm http 200 https://registry.npmjs.org/jsonify
npm http GET https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz
npm http 200 https://registry.npmjs.org/array-reduce
npm http GET https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz
npm http 200 https://registry.npmjs.org/osenv/-/osenv-0.0.3.tgz
npm http 200 https://registry.npmjs.org/array-filter
npm http GET https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz
npm http 200 https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz
npm http 304 https://registry.npmjs.org/fstream
npm http 200 https://registry.npmjs.org/q/-/q-0.9.7.tgz
npm http 200 https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz
npm http 304 https://registry.npmjs.org/inherits
npm http 200 https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz
npm http 200 https://registry.npmjs.org/minimatch
npm http 200 https://registry.npmjs.org/mkpath
npm http GET https://registry.npmjs.org/mkpath/-/mkpath-0.1.0.tgz
npm http 200 https://registry.npmjs.org/intersect
npm http GET https://registry.npmjs.org/intersect/-/intersect-0.0.3.tgz
npm http 200 https://registry.npmjs.org/deep-extend
npm http GET https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz
npm http 200 https://registry.npmjs.org/touch/0.0.2
npm http GET https://registry.npmjs.org/touch/-/touch-0.0.2.tgz
npm http 200 https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz
npm http 304 https://registry.npmjs.org/readable-stream
npm http 304 https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz
npm http 200 https://registry.npmjs.org/touch/-/touch-0.0.2.tgz
npm http 200 https://registry.npmjs.org/minimist/0.0.8
npm http GET https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz
npm http 200 https://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz
npm http 200 https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz
npm http 200 https://registry.npmjs.org/binary
npm http GET https://registry.npmjs.org/binary/-/binary-0.3.0.tgz
npm http 200 https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz
npm http 200 https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz
npm http 200 https://registry.npmjs.org/mkpath/-/mkpath-0.1.0.tgz
npm http 200 https://registry.npmjs.org/mute-stream/0.0.4
npm http GET https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz
npm http 200 https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz
npm http 200 https://registry.npmjs.org/readline2
npm http GET https://registry.npmjs.org/readline2/-/readline2-0.1.0.tgz
npm http 200 https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz
npm http 200 https://registry.npmjs.org/tough-cookie
npm http 200 https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz
npm http 200 https://registry.npmjs.org/readline2/-/readline2-0.1.0.tgz
npm http 200 https://registry.npmjs.org/lodash
npm http GET https://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz
npm http 200 https://registry.npmjs.org/intersect/-/intersect-0.0.3.tgz
npm http 200 https://registry.npmjs.org/binary/-/binary-0.3.0.tgz
npm http GET https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http GET https://registry.npmjs.org/core-util-is
npm http GET https://registry.npmjs.org/isarray/0.0.1
npm http GET https://registry.npmjs.org/string_decoder
npm http GET https://registry.npmjs.org/chainsaw
npm http GET https://registry.npmjs.org/buffers
npm http 200 https://registry.npmjs.org/figures
npm http 304 https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/wordwrap
npm http GET https://registry.npmjs.org/minimist
npm http 200 https://registry.npmjs.org/through
npm http GET https://registry.npmjs.org/through/-/through-2.3.6.tgz
npm http 200 https://registry.npmjs.org/request-replay
npm http GET https://registry.npmjs.org/request-replay/-/request-replay-0.2.0.tgz
npm http 200 https://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz
npm http 200 https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http 304 https://registry.npmjs.org/request
npm http GET https://registry.npmjs.org/request/-/request-2.27.0.tgz
npm http 200 https://registry.npmjs.org/mkdirp
npm http 304 https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/lru-cache/-/lru-cache-2.3.1.tgz
npm http 200 https://registry.npmjs.org/through/-/through-2.3.6.tgz
npm http 200 https://registry.npmjs.org/cli-color
npm http GET https://registry.npmjs.org/cli-color/-/cli-color-0.3.2.tgz
npm http 200 https://registry.npmjs.org/redeyed
npm http GET https://registry.npmjs.org/redeyed/-/redeyed-0.4.4.tgz
npm http 200 https://registry.npmjs.org/rx
npm http 200 https://registry.npmjs.org/forever-agent
npm http GET https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz
npm http 200 https://registry.npmjs.org/json-stringify-safe
npm http GET https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz
npm http 200 https://registry.npmjs.org/request-replay/-/request-replay-0.2.0.tgz
npm http 200 https://registry.npmjs.org/tunnel-agent
npm http GET https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz
npm http 200 https://registry.npmjs.org/caseless
npm http GET https://registry.npmjs.org/caseless/-/caseless-0.6.0.tgz
npm http 200 https://registry.npmjs.org/redeyed/-/redeyed-0.4.4.tgz
npm http 200 https://registry.npmjs.org/request/-/request-2.27.0.tgz
npm http 200 https://registry.npmjs.org/bl
npm http GET https://registry.npmjs.org/bl/-/bl-0.9.3.tgz
npm http 200 https://registry.npmjs.org/node-uuid
npm http GET https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.2.tgz
npm http 200 https://registry.npmjs.org/cli-color/-/cli-color-0.3.2.tgz
npm http 200 https://registry.npmjs.org/oauth-sign
npm http GET https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.4.0.tgz
npm http GET https://registry.npmjs.org/esprima
npm http 200 https://registry.npmjs.org/hawk/1.1.1
npm http GET https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz
npm http 200 https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz
npm http 200 https://registry.npmjs.org/http-signature
npm http GET https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz
npm http 200 https://registry.npmjs.org/aws-sign2
npm http GET https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz
npm http 200 https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz
npm http 200 https://registry.npmjs.org/lru-cache/-/lru-cache-2.3.1.tgz
npm http 304 https://registry.npmjs.org/qs
npm http GET https://registry.npmjs.org/qs/-/qs-1.2.2.tgz
npm http 200 https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz
npm http 200 https://registry.npmjs.org/stringstream
npm http GET https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz
npm http 200 https://registry.npmjs.org/caseless/-/caseless-0.6.0.tgz
npm http 304 https://registry.npmjs.org/mime-types
npm http GET https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz
npm http 200 https://registry.npmjs.org/bl/-/bl-0.9.3.tgz
npm http 200 https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.2.tgz
npm http 200 https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.4.0.tgz
npm http 200 https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz
npm http 200 https://registry.npmjs.org/minimatch
npm http 200 https://registry.npmjs.org/form-data
npm http GET https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz
npm http 200 https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz
npm http 304 https://registry.npmjs.org/graceful-fs
npm http 200 https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz
npm http 200 https://registry.npmjs.org/qs/-/qs-1.2.2.tgz
npm http 200 https://registry.npmjs.org/once
npm http 200 https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/async/-/async-0.2.10.tgz
npm http 200 https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz
npm http 304 https://registry.npmjs.org/core-util-is
npm http 200 https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz
npm http 200 https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz
npm http 200 https://registry.npmjs.org/async/-/async-0.2.10.tgz
npm http 304 https://registry.npmjs.org/isarray/0.0.1
npm http 200 https://registry.npmjs.org/mute-stream
npm http 304 https://registry.npmjs.org/string_decoder
npm http 200 https://registry.npmjs.org/chainsaw
npm http GET https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz
npm http GET https://registry.npmjs.org/hawk
npm http GET https://registry.npmjs.org/json-stringify-safe
npm http GET https://registry.npmjs.org/forever-agent
npm http GET https://registry.npmjs.org/aws-sign
npm http GET https://registry.npmjs.org/cookie-jar
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz
npm http GET https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz
npm http 200 https://registry.npmjs.org/buffers
npm http GET https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz
npm http 200 https://registry.npmjs.org/wordwrap
npm http GET https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz
npm http 200 https://registry.npmjs.org/uglify-js
npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz
npm http 200 https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz
npm http 200 https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz
npm http 200 https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz
npm http 200 https://registry.npmjs.org/esprima
npm http GET https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz
npm http 200 https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz
npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz
npm http 200 https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz
npm http 304 https://registry.npmjs.org/json-stringify-safe
npm http 304 https://registry.npmjs.org/forever-agent
npm http 200 https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz
npm http 200 https://registry.npmjs.org/minimist
npm http GET https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz
npm http 200 https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz
npm http 200 https://registry.npmjs.org/cookie-jar
npm http GET https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.3.0.tgz
npm http GET https://registry.npmjs.org/traverse
npm http 304 https://registry.npmjs.org/mime
npm http 200 https://registry.npmjs.org/aws-sign
npm http GET https://registry.npmjs.org/aws-sign/-/aws-sign-0.3.0.tgz
npm http 200 https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.3.0.tgz
npm http 200 https://registry.npmjs.org/hawk
npm http GET https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz
npm http 200 https://registry.npmjs.org/aws-sign/-/aws-sign-0.3.0.tgz
npm http 200 https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz
npm http 200 https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz
npm http 200 https://registry.npmjs.org/traverse
npm http GET https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz
npm http 200 https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz
npm http GET https://registry.npmjs.org/combined-stream
npm http GET https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/ctype/0.5.3
npm http GET https://registry.npmjs.org/assert-plus
npm http GET https://registry.npmjs.org/asn1/0.1.11
npm http GET https://registry.npmjs.org/hoek
npm http GET https://registry.npmjs.org/boom
npm http GET https://registry.npmjs.org/cryptiles
npm http GET https://registry.npmjs.org/sntp
npm http 200 https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz
npm http 200 https://registry.npmjs.org/tough-cookie
npm http GET https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz
npm http 200 https://registry.npmjs.org/asn1/0.1.11
npm http GET https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz
npm http 200 https://registry.npmjs.org/combined-stream
npm http GET https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz
npm http 200 https://registry.npmjs.org/ctype/0.5.3
npm http GET https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz
npm http 304 https://registry.npmjs.org/async
npm http GET https://registry.npmjs.org/async/-/async-0.9.0.tgz
npm http 200 https://registry.npmjs.org/assert-plus
npm http 200 https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz
npm http 200 https://registry.npmjs.org/cryptiles
npm http GET https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz
npm http 200 https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz
npm http 200 https://registry.npmjs.org/sntp
npm http GET https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz
npm http 200 https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz
npm http 200 https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz
npm http GET https://registry.npmjs.org/wordwrap
npm http 200 https://registry.npmjs.org/async/-/async-0.9.0.tgz
npm http GET https://registry.npmjs.org/source-map
npm http 200 https://registry.npmjs.org/boom
npm http GET https://registry.npmjs.org/boom/-/boom-0.4.2.tgz
npm http 200 https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz
npm http 200 https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz
npm http 200 https://registry.npmjs.org/boom/-/boom-0.4.2.tgz
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/readable-stream
npm WARN optional dep failed, continuing http-signature@0.10.1
npm http GET https://registry.npmjs.org/punycode
npm http GET https://registry.npmjs.org/delayed-stream/0.0.5
npm http 304 https://registry.npmjs.org/wordwrap
npm http 304 https://registry.npmjs.org/mime
npm http 200 https://registry.npmjs.org/hoek
npm http GET https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz
npm http 200 https://registry.npmjs.org/delayed-stream/0.0.5
npm http GET https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz
npm http 200 https://registry.npmjs.org/punycode
npm http GET https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz
npm http 304 https://registry.npmjs.org/readable-stream
npm http GET https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz
npm http 200 https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz
npm http 200 https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz
npm http 200 https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz
npm http 200 https://registry.npmjs.org/source-map
npm http GET https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz
npm http 200 https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz
npm http GET https://registry.npmjs.org/core-util-is
npm http GET https://registry.npmjs.org/isarray/0.0.1
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/string_decoder
npm http 200 https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz
npm http GET https://registry.npmjs.org/amdefine
npm http 304 https://registry.npmjs.org/isarray/0.0.1
npm http 304 https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/core-util-is
npm http 304 https://registry.npmjs.org/string_decoder
npm http 200 https://registry.npmjs.org/amdefine
npm http GET https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz
npm http 200 https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/xwh/BLOG_DIRECOTRY/npm-debug.log
npm ERR! not ok code 0
新建一个express3的项目nodejs-bower
express -e nodejs-bower

   create : nodejs-bower
   create : nodejs-bower/package.json
   create : nodejs-bower/app.js
   create : nodejs-bower/public
   create : nodejs-bower/public/images
   create : nodejs-bower/public/stylesheets
   create : nodejs-bower/public/stylesheets/style.css
   create : nodejs-bower/routes
   create : nodejs-bower/routes/index.js
   create : nodejs-bower/routes/user.js
   create : nodejs-bower/views
   create : nodejs-bower/views/index.ejs
   create : nodejs-bower/views/error.ejs
   create : nodejs-bower/bin
   create : nodejs-bower/bin/www
   create : nodejs-bower/public/javascripts

   install dependencies:
     $ cd nodejs-bower && npm install

   run the app:
     $ DEBUG=my-application ./bin/www

cd nodejs-bower/ && sudo npm install


npm WARN package.json application-name@0.0.1 No repository field.
npm WARN package.json application-name@0.0.1 No readme data.
npm http GET https://registry.npmjs.org/morgan
npm http GET https://registry.npmjs.org/static-favicon
npm http GET https://registry.npmjs.org/cookie-parser
npm http GET https://registry.npmjs.org/ejs
npm http GET https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/body-parser
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/static-favicon
npm http 304 https://registry.npmjs.org/morgan
npm WARN deprecated static-favicon@1.0.2: use serve-favicon module
npm http 304 https://registry.npmjs.org/body-parser
npm http 304 https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/ejs
npm http 304 https://registry.npmjs.org/cookie-parser
npm http GET https://registry.npmjs.org/bytes/0.3.0
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/cookie-signature/1.0.3
npm http GET https://registry.npmjs.org/type-is
npm http GET https://registry.npmjs.org/qs
npm http GET https://registry.npmjs.org/raw-body
npm http GET https://registry.npmjs.org/connect/2.12.0
npm http GET https://registry.npmjs.org/commander/1.3.2
npm http GET https://registry.npmjs.org/mkdirp/0.3.5
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/fresh/0.2.0
npm http GET https://registry.npmjs.org/send/0.1.4
npm http GET https://registry.npmjs.org/methods/0.1.0
npm http GET https://registry.npmjs.org/cookie-signature/1.0.1
npm http GET https://registry.npmjs.org/merge-descriptors/0.0.1
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http 304 https://registry.npmjs.org/qs
npm http 304 https://registry.npmjs.org/bytes/0.3.0
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.3
npm http 304 https://registry.npmjs.org/raw-body
npm http 304 https://registry.npmjs.org/connect/2.12.0
npm http 304 https://registry.npmjs.org/commander/1.3.2
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm WARN package.json range-parser@0.0.4 No repository field.
npm http 304 https://registry.npmjs.org/type-is
npm http GET https://registry.npmjs.org/bytes
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/string_decoder
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http 304 https://registry.npmjs.org/fresh/0.2.0
npm http 304 https://registry.npmjs.org/send/0.1.4
npm http 304 https://registry.npmjs.org/mkdirp/0.3.5
npm http 304 https://registry.npmjs.org/methods/0.1.0
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.1
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm http 304 https://registry.npmjs.org/bytes
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/merge-descriptors/0.0.1
npm http GET https://registry.npmjs.org/keypress
npm http GET https://registry.npmjs.org/batch/0.5.0
npm http GET https://registry.npmjs.org/qs/0.6.6
npm http GET https://registry.npmjs.org/bytes/0.2.1
npm http GET https://registry.npmjs.org/uid2/0.0.3
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http GET https://registry.npmjs.org/raw-body/1.1.2
npm http GET https://registry.npmjs.org/negotiator/0.3.0
npm http GET https://registry.npmjs.org/multiparty/2.2.0
npm http 304 https://registry.npmjs.org/string_decoder
npm http 304 https://registry.npmjs.org/uid2/0.0.3
npm WARN package.json uid2@0.0.3 No repository field.
npm WARN package.json uid2@0.0.3 No readme data.
npm http 304 https://registry.npmjs.org/pause/0.0.1
npm WARN package.json pause@0.0.1 No repository field.
npm http 304 https://registry.npmjs.org/raw-body/1.1.2
npm http 304 https://registry.npmjs.org/bytes/0.2.1
npm http 304 https://registry.npmjs.org/qs/0.6.6
npm WARN package.json bytes@0.2.1 No repository field.
npm http 304 https://registry.npmjs.org/batch/0.5.0
npm WARN package.json batch@0.5.0 No repository field.
npm http 304 https://registry.npmjs.org/keypress
npm http 304 https://registry.npmjs.org/negotiator/0.3.0
npm http 304 https://registry.npmjs.org/multiparty/2.2.0
npm http GET https://registry.npmjs.org/readable-stream
npm http GET https://registry.npmjs.org/stream-counter
npm http 304 https://registry.npmjs.org/stream-counter
npm http 304 https://registry.npmjs.org/readable-stream
npm http GET https://registry.npmjs.org/core-util-is
npm http GET https://registry.npmjs.org/isarray/0.0.1
npm http GET https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/core-util-is
npm http 304 https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/isarray/0.0.1
debug@0.7.4 node_modules/debug

static-favicon@1.0.2 node_modules/static-favicon

ejs@0.8.8 node_modules/ejs

morgan@1.0.1 node_modules/morgan
└── bytes@0.3.0

cookie-parser@1.0.1 node_modules/cookie-parser
├── cookie-signature@1.0.3
└── cookie@0.1.0

body-parser@1.0.2 node_modules/body-parser
├── qs@0.6.6
├── type-is@1.1.0 (mime@1.2.11)
└── raw-body@1.1.7 (string_decoder@0.10.31, bytes@1.0.0)

express@3.4.8 node_modules/express
├── methods@0.1.0
├── merge-descriptors@0.0.1
├── range-parser@0.0.4
├── cookie-signature@1.0.1
├── fresh@0.2.0
├── buffer-crc32@0.2.1
├── cookie@0.1.0
├── mkdirp@0.3.5
├── send@0.1.4 (mime@1.2.11)
├── commander@1.3.2 (keypress@0.1.0)
└── connect@2.12.0 (uid2@0.0.3, pause@0.0.1, qs@0.6.6, bytes@0.2.1, raw-body@1.1.2, batch@0.5.0, negotiator@0.3.0, multiparty@2.2.0)xwh@xwh:~/BLOG_DIRECOTRY/nodejs-bower$ 









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值