Tuesday, May 27, 2014

Install Node.js, Grunt, Bower and webapp generator on OSX


$ brew install node

==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/node-0.10.28.mavericks.bottle.tar.gz
Already downloaded: /Library/Caches/Homebrew/node-0.10.28.mavericks.bottle.tar.gz
==> Pouring node-0.10.28.mavericks.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> make install
==> /usr/local/bin/npm update npm -g
==> Summary
🍺  /usr/local/Cellar/node/0.10.28: 1547 files, 18M

$ npm -v
1.4.13

$ node -v
v0.10.28


Install NPM Grunt and Bower


$ npm install -g yo grunt-cli bower

/usr/local/bin/grunt -> /usr/local/lib/node_modules/grunt-cli/bin/grunt
/usr/local/bin/bower -> /usr/local/lib/node_modules/bower/bin/bower
/usr/local/bin/yo -> /usr/local/lib/node_modules/yo/cli.js

> yo@1.1.2 postinstall /usr/local/lib/node_modules/yo
> node ./scripts/doctor

[Yeoman Doctor] Everything looks alright!

grunt-cli@0.1.13 /usr/local/lib/node_modules/grunt-cli
├── resolve@0.3.1
├── nopt@1.0.10 (abbrev@1.0.5)
└── findup-sync@0.1.3 (lodash@2.4.1, glob@3.2.11)

bower@1.3.3 /usr/local/lib/node_modules/bower
├── is-root@0.1.0
├── junk@0.3.0
├── stringify-object@0.2.1
├── chmodr@0.1.0
├── which@1.0.5
├── osenv@0.0.3
├── opn@0.1.2
├── archy@0.0.2
├── graceful-fs@2.0.3
├── lockfile@0.4.2
├── rimraf@2.2.8
├── bower-logger@0.2.2
├── lru-cache@2.5.0
├── bower-endpoint-parser@0.2.1
├── nopt@2.2.1
├── abbrev@1.0.5
├── retry@0.6.0
├── mkdirp@0.3.5
├── tmp@0.0.23
├── q@1.0.1
├── chalk@0.4.0 (has-color@0.1.7, ansi-styles@1.0.0, strip-ansi@0.1.1)
├── request-progress@0.3.1 (throttleit@0.0.2)
├── semver@2.2.1
├── fstream@0.1.25 (inherits@2.0.1)
├── shell-quote@1.4.1 (array-filter@0.0.1, array-reduce@0.0.0, array-map@0.0.0, jsonify@0.0.0)
├── bower-json@0.4.0 (intersect@0.0.3, deep-extend@0.2.10)
├── p-throttler@0.0.1 (q@0.9.7)
├── promptly@0.2.0 (read@1.0.5)
├── fstream-ignore@0.0.8 (inherits@2.0.1, minimatch@0.3.0)
├── tar@0.1.19 (inherits@2.0.1, block-stream@0.0.7)
├── glob@3.2.11 (inherits@2.0.1, minimatch@0.3.0)
├── bower-config@0.5.1 (optimist@0.6.1)
├── decompress-zip@0.0.7 (mkpath@0.1.0, touch@0.0.2, readable-stream@1.1.13-1, binary@0.3.0)
├── request@2.34.0 (json-stringify-safe@5.0.0, aws-sign2@0.5.0, forever-agent@0.5.2, qs@0.6.6, tunnel-agent@0.3.0, oauth-sign@0.3.0, node-uuid@1.4.1, mime@1.2.11, form-data@0.1.2, tough-cookie@0.12.1, http-signature@0.10.0, hawk@1.0.0)
├── cardinal@0.4.4 (ansicolors@0.2.1, redeyed@0.4.4)
├── bower-registry-client@0.2.1 (request-replay@0.2.0, lru-cache@2.3.1, async@0.2.10, request@2.27.0)
├── inquirer@0.4.1 (readline2@0.1.0, through@2.3.4, mute-stream@0.0.4, async@0.2.10, cli-color@0.2.3, lodash@2.4.1)
├── handlebars@1.3.0 (optimist@0.3.7, uglify-js@2.3.6)
├── mout@0.9.1
├── update-notifier@0.1.8 (semver@2.1.0, request@2.27.0, configstore@0.2.3)
└── insight@0.3.1 (object-assign@0.1.2, async@0.2.10, lodash.debounce@2.4.1, request@2.27.0, configstore@0.2.3)

yo@1.1.2 /usr/local/lib/node_modules/yo
├── open@0.0.4
├── async@0.2.10
├── chalk@0.4.0 (has-color@0.1.7, ansi-styles@1.0.0, strip-ansi@0.1.1)
├── nopt@2.1.2 (abbrev@1.0.5)
├── sudo-block@0.3.0 (chalk@0.3.0)
├── findup@0.1.5 (commander@2.1.0, colors@0.6.2)
├── shelljs@0.2.6
├── lodash@2.4.1
├── update-notifier@0.1.8 (semver@2.1.0, request@2.27.0, configstore@0.2.3)
├── yeoman-generator@0.16.0 (dargs@0.1.0, diff@1.0.8, debug@0.7.4, class-extend@0.1.1, rimraf@2.2.8, findup-sync@0.1.3, text-table@0.2.0, mime@1.2.11, mkdirp@0.3.5, isbinaryfile@2.0.1, glob@3.2.11, iconv-lite@0.2.11, underscore.string@2.3.3, file-utils@0.1.5, request@2.30.0, cheerio@0.13.1, download@0.1.17, inquirer@0.4.1)
└── insight@0.3.1 (object-assign@0.1.2, lodash.debounce@2.4.1, inquirer@0.4.1, request@2.27.0, configstore@0.2.3)


Install generator-webapp


$ npm install -g generator-webapp

generator-mocha@0.1.3 /usr/local/lib/node_modules/generator-mocha
└── yeoman-generator@0.14.2 (dargs@0.1.0, diff@1.0.8, debug@0.7.4, rimraf@2.2.8, chalk@0.3.0, text-table@0.2.0, mime@1.2.11, async@0.2.10, mkdirp@0.3.5, isbinaryfile@0.1.9, shelljs@0.2.6, glob@3.2.11, underscore.string@2.3.3, iconv-lite@0.2.11, lodash@2.2.1, findup-sync@0.1.3, request@2.27.0, file-utils@0.1.5, download@0.1.17, inquirer@0.3.5, cheerio@0.12.4)

generator-webapp@0.4.9 /usr/local/lib/node_modules/generator-webapp
├── chalk@0.4.0 (has-color@0.1.7, ansi-styles@1.0.0, strip-ansi@0.1.1)
├── cheerio@0.13.1 (underscore@1.5.2, entities@0.5.0, CSSselect@0.4.1, htmlparser2@3.4.0)
└── yeoman-generator@0.16.0 (dargs@0.1.0, diff@1.0.8, debug@0.7.4, class-extend@0.1.1, rimraf@2.2.8, findup-sync@0.1.3, text-table@0.2.0, mime@1.2.11, async@0.2.10, mkdirp@0.3.5, isbinaryfile@2.0.1, shelljs@0.2.6, underscore.string@2.3.3, iconv-lite@0.2.11, glob@3.2.11, lodash@2.4.1, request@2.30.0, file-utils@0.1.5, download@0.1.17, inquirer@0.4.1)



Notes



If you try to install generator-webapp before installing yeoman, you'll get this error:


$ npm install -g generator-webapp

npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/usr/local/lib/node_modules/generator-webapp/node_modules/yeoman-generator/node_modules/download/node_modules/nopt'
npm ERR! error rolling back  download@0.1.17 { [Error: ENOTEMPTY, rmdir '/usr/local/lib/node_modules/generator-webapp/node_modules/yeoman-generator/node_modules/download/node_modules/nopt']
npm ERR! error rolling back   errno: 53,
npm ERR! error rolling back   code: 'ENOTEMPTY',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/generator-webapp/node_modules/yeoman-generator/node_modules/download/node_modules/nopt' }
npm ERR! Error: ENOENT, utime '/usr/local/lib/node_modules/generator-webapp/node_modules/yeoman-generator/node_modules/request/node_modules/node-uuid/README.md'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     

npm ERR! System Darwin 13.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "generator-webapp"
npm ERR! cwd /Users/lex/dev/yeoman
npm ERR! node -v v0.10.28
npm ERR! npm -v 1.4.13
npm ERR! path /usr/local/lib/node_modules/generator-webapp/node_modules/yeoman-generator/node_modules/request/node_modules/node-uuid/README.md
npm ERR! fstream_path /usr/local/lib/node_modules/generator-webapp/node_modules/yeoman-generator/node_modules/request/node_modules/node-uuid/README.md
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! fstream_finish_call utimes
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:305:19
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/generator-webapp/node_modules/yeoman-generator/node_modules/request/node_modules/forever-agent/LICENSE'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     


. . . ...Just run this command and next time, install yeoman first.

$ sudo npm cache clean


p.s. That command fixes a slew of other npm error conditions such as the following:

$ npm install -g yo
npm ERR! Error: ENOTEMPTY, rmdir '/usr/local/lib/node_modules/yo/node_modules/yeoman-generator/node_modules/inquirer'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     

npm ERR! System Darwin 13.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "yo"
npm ERR! cwd /Users/lex
npm ERR! node -v v0.10.28
npm ERR! npm -v 1.5.0-alpha-1
npm ERR! path /usr/local/lib/node_modules/yo/node_modules/yeoman-generator/node_modules/inquirer
npm ERR! code ENOTEMPTY
npm ERR! errno 53
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/lex/npm-debug.log
npm ERR! not ok code 0



References

http://brew.sh/
http://gruntjs.com/
http://bower.io/
http://nodejs.org/

No comments:

Post a Comment