Installing uglyfi-js and node on Ubuntu 12.10
January 29, 2013 Leave a comment
The e-Classifieds ® Corporate edition uses lots of JavaScript code, so to help speed things up we compress the code. Previously this has been done using JavaScript::Minifier::XS from CPAN, but all the cool kids are using UglifyJS. So I thought I would see how it compared.
UglifyJS is a NodeJS package. I’m not a great fan of having to install an entirely new suite of tools just to test one thing, but it doesn’t seem like NodeJS is going away anytime soon, so I added it. To minimize problems I started on my own desktop running Ubuntu (Kubuntu), but I immediately ran into this error:
npm ERR! error installing uglify-js@2.2.3
npm ERR! Error: No compatible version found: source-map@’>=0.1.7- <0.2.0-’
npm ERR! Valid install targets:
npm ERR! ["0.0.0","0.1.0","0.1.1","0.1.2","0.1.3"]
npm ERR! at installTargetsError (/usr/share/npm/lib/cache.js:488:10)
npm ERR! at next_ (/usr/share/npm/lib/cache.js:438:17)
npm ERR! at next (/usr/share/npm/lib/cache.js:415:44)
npm ERR! at /usr/share/npm/lib/cache.js:408:5
npm ERR! at saved (/usr/share/npm/lib/utils/npm-registry-client/get.js:147:7)
npm ERR! at Object.oncomplete (/usr/lib/nodejs/graceful-fs.js:230:7)
Which is a rather long message to say that you need to upgrade NodeJS. The problem is that I was running the latest version of NodeJS that Ubuntu distributes. Fortunately when you search launchpad you can usually find someone who has added the latest version of whatever you are looking for. And sure enough there is a PPA for the latest version of NodeJS. You can install it using the following commands:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs npm
Once you have NodeJS updated you can then get UglifyJS installed easily:
npm install uglify-js
Now to see how small this makes the JavaScript on our e-Classifieds (r) Corporate edition. If it is good enough we might add nodeJS to the servers for general use.