In order to run Yeoman properly you’ll require a few dependencies like Command Line Tools for Xcode, Homebrew, NodeJS, git, NodeJS, ruby, RubyGems, Compass, jpegtran, optipng, yeoman global npm module and the most important puzzle piece and part of today’s discussion; PhantomJS.
What is PhantomJS?
PhantomJS is a headless WebKit with JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG. It’s mainly used in the test workflow of various open–source projects. It also can be used for headless website testing to run functional tests with frameworks such as Jasmine, QUnit, Mocha, Capybara, WebDriver, and many others.
Why are we talking about PhantomJS today?
The reason I mention PhantomJS today is because I came across some difficulties on my Mac when running curl -L get.yeoman.io | bash
(this command runs an audit script to determine which dependencies are or are not installed for Yeoman to function properly). Unfortunately, the output of this command returned the following in my case: PhantomJS not installed
. Good news though, here’s the run down I went through which will guide you towards a solution –at least what I found to work for me.
NOTE: The following directions assume you have Homebrew installed. I will not be discussing Homebrew and the installation process.
First Update Homebrew
When I was updating brew I was using the following command…
brew update
The problem I ran into was the following error output…
Error:
Failed while executing git pull http://github.com/mxcl/homebrew.git master
The following untracked working tree files would be overwritten by merge:
Please move or remove them before you can merge.
Library/Formula/argp-standalone.rb
Library/Formula/lbdb.rb
Library/Formula/pbrt.rb
After much scanning and IRC chatting I found the fix on this Github Issue Tracker thread.
https://github.com/mxcl/homebrew/issues/11448
Now Install PhantomJS
Ok, so now that the problem with brew update was out of the way I needed to install phantom…
brew install phantomjs
Of course I got yelled at in the output with the following message…
Error: phantomjs-1.7.0 already installed, it's just not linked
Just Link Phantom Right?
Well it did sound simple but…
brew link phantomjs
Gave me this…
Error: Linking /usr/local/Cellar/phantomjs/1.7.0...
Warning: Could not link phantomjs. Unlinking...
Error: Could not symlink file: /usr/local/Cellar/phantomjs/1.7.0/bin/phantomjs /usr/local/bin/phantomjs may already exist. /usr/local/bin may not be writable.
I bet you’re thinking about running sudo brew link phantomjs
right about now –right?
Shit! Fuck! Shit!
Calm down we still got you covered. So sudo
didn’t work out after all. Instead of running sudo
, It’s recommended to chown
your usr/local dir
.
To do so, run the following command in your Terminal…
sudo chown -R $USER /usr/local
Just remember to replace $USER
with your username, but If you did it without changing the $USER
part it’s the same if $USER
will normally be the same as your current name.
Boo Boo all Better
The crummy part is out of the way now because all you have to do is run brew link phantomjs
one final time and you’re all good! PhantomJS should be installed at last. Happy Yeoman-ning. Questions? Ask.
Yeoman IRC
Channel: #yeoman
http://webchat.freenode.net
Nice! Love your exasperations!
Thanks Dave. I definitely keep it very G rated for sure.