-
Notifications
You must be signed in to change notification settings - Fork 8
Brew Node NPM Grunt tips
Get Homebrew version:
$ brew --version
0.9.4Dependencies:
- Terminal must be set to
/usr/bin/loginrather than/bin/bash/or another login shell - run
$ brew install gitto enable GitHub updates to brew
- Mac OS 10.6.* must have Xcode 3.2.6* to properly run git updates *requires developer login credentials (free-level access ok)
Regularly run:
$ brew update
# ... or:
$ brew update && brew cleanup
# You can run this less often:
$ brew upgradeFetch the newest version of Homebrew from GitHub using git.
Troubleshoot:
$ brew doctorCheck your system for potential problems. Doctor exits with a non-zero status if any problems are found.
Super useful:
$ brew info [package name]For more info on brew, use:
$ man brewTip: Use u and d keys to travel up/down the man page; use :q to exit.
If you can't remember some commands you've used in the past, you can always grep your history:
$ history | grep npmCreate a package.json file using:
$ npm initThis will ask you a bunch of questions, and then write a package.json for you.
… and follow the on-screen instructions.
For more on npm:
$ npm --helpTo see more info for a particular command, run:
$ npm help init… where init can be any one of the available commands.
Checking versions of installed packages:
# For locally installed packages:
$ npm list
# For globally installed packages:
$ npm list -g
# Locally installed, without their dependencies:
$ npm list --depth=0
# Globally installed, without their dependencies:
$ npm list --depth=0 -g
# View latest latest version available on npmjs.org:
$ npm view <package-name> versionUpgrade an npm package:
$ npm update # Updates all local packages.
$ npm update item # Where "item" is a package name.
$ npm update -g # Updates all "global" npm packages.
$ npm update item -g # Where "item" is a "global" package name.Update npm (Oct. 2014):
$ npm install -g npm@latestUPDATE Grunt 0.4.0 has been released!!!! Read more here.
First, uninstall any previous global installs of grunt:
$ sudo npm uninstall -g gruntThen install the CLI:
$ sudo npm install -g grunt-cliNow read these docs:
https://github.com/gruntjs/grunt/wiki/Getting-started
http://gruntjs.com/getting-started
Tip: The master branch is the latest version (0.4). The older version of grunt (0.3) can be found here:
https://github.com/gruntjs/grunt/tree/0.3-stable
I point this out because it's kinda confusing at this time due to the current transition from 0.3 to 0.4.
Source code and more docs can be found here:
https://github.com/gruntjs/grunt
If you have a package.json setup and have yet to install anything locally, cd to the project directory and run:
$ npm installAfter install, brew doctor may likely brew report that
$ brew doctor
Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. ... [snip] ... echo $PATH will show you the order that the bash shell (the OS X default Unix shell) searches for things. Doing that, you'll see what brew is talking about.
One way is to edit your ~/.profile file.
Another way to re-arrange the order is to update /Volumes/XXXXX/private/etc/paths
Was:
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/binChanged to:
/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbinSee: Homebrew wants me to amend my PATH. No clue how
Note: A quick way to get to the /private/etc/paths file is to go to the Finder, type Shift + Command + G and enter-in /private/etc/. From there, find the paths file, open and edit it.
Note: You may need to restart the machine for brew doctor to note that the changes have been made.
I ended up un-installing Node's .pkg install and installed it using Homebrew instead.
I ran into some issues along the way. Here's my bash history for future reference:
483 brew install node
484 rm -rf /usr/local/lib/node_modules/npm
485 brew link node
486 rm -rf /usr/local/share/man/man1/node.1
487 brew link
488 brew link node
489 brew link --overwrite node
490 sudo brew link --overwrite node
491 brew link --overwrite node
492 npm link node
493 brew link node
494 rm -rf /usr/local/lib/dtrace/node.d
495 sudo chown -R whoami /usr/local/lib/dtrace/node.d
496 brew link -n node
497 brew link node
498 rm /usr/local/lib/dtrace/node.d
499 brew link node
500 brew link --overwrite node
501 brew install node
502 brew link node
503 brew link --overwrite node
504 rm -rf /usr/local/lib/node_modules/npm
505 brew link node
506 brew link -n node
507 rm -R /usr/local/Cellar/node/0.8.10/lib/node_modules/npm
508 rm -rf /usr/local/lib/node_modules/npm
509 brew link node
510 rm -f /usr/local/lib/dtrace/node.d
511 sudo rm -f /usr/local/lib/dtrace/node.d
512 brew link node
513 rm -rf /usr/local/lib/node_modules/npm
514 brew link node
515 sudo chown 'whoami' /usr/local/lib/dtrace
516 sudo chown -R whoami/usr/local/lib/dtrace
517 sudo chown -R whoami /usr/local/lib/dtrace
518 brew link node
519 chmod +w /usr/local/lib/dtrace
520 brew link node
521 cd /usr/local/lib/
522 ls -la
523 sudo chown -R mhulse /usr/local/lib/dtrace
524 ls -la
525 sudo chown -R mhulse:admin /usr/local/lib/dtrace
526 ls -la
527 brew link nodeSee:
- How do I uninstall nodejs installed from pkg (Mac OS X)?
- How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)
I used this script:
Do: $ chmod u+x uninstall-node.sh and then $ ./uninstall-node.sh.
When running $ brew install node, I got this message:
Warning: Could not link node. Unlinking...
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link node'Using $ brew link node I got:
Error: Could not symlink file: /usr/local/Cellar/node/0.8.20/include/node/v8stdint.h
/usr/local/include/node is not writable. You should change its permissions.So based on info found here, I removed:
$ sudo rm -rf ./nodeNext, $ brew link node gave me:
Error: Could not symlink file: /usr/local/Cellar/node/0.8.20/lib/dtrace/node.d
/usr/local/lib/dtrace is not writable. You should change its permissions.This time, using the Finder, I navigated to /usr/local/lib/ and moved the "dtrace" folder to the trash.
Now:
$ brew link node... gave me:
Linking /usr/local/Cellar/node/0.8.20... 8 symlinks createdWOOT!
Lastly, I added /usr/local/share/npm/bin to the top of my paths file (/Volumes/XXXXX/private/etc/paths):
/usr/local/share/npm/bin
/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin
... as $ brew install node had said earlier:
Homebrew installed npm. We recommend prepending the following path to your PATH environment variable to have npm-installed binaries picked up:
/usr/local/share/npm/bin
Note: You'll probably want to run $ brew doctor and $ brew update now.
I restarted my computer for completeness' sake. :)
How to update node.js, npm and all other dependencies?
$ brew upgrade nodeTroubleshooting: If you had previously installed a development version of Grunt 0.4 or any grunt-contrib plugins, be sure to flush your npm cache with npm cache clean first to ensure that you are pulling the final version of Grunt and grunt-contrib plugins.