Setting up a Virtual Machine for Node.js development on Windows 7
Mar 18
If you run Windows 7 and you want to develop for the latest version of Node.js, you’re in for a bumpy ride. You can compile it under Cygwin, but the process is complex and doesn’t work for all versions. So what if:
- You fear a later version of Node.js breaking on Windows again? (It was broken for two full minor versions, really quite a while.)
- You don’t want to install Cygwin? (You madman, you really should.)
- You are paranoid and want to be running your programs on the same environment you will be deploying them on?
- You just can’t get the dang instructions to work?
Well, the solution isn’t to reformat and install Linux (though that could very easily help your productivity – fewer games being played, I’m sure). The solution is to install Node.js on a Virtual Machine with a shared drive. And honestly? It’s pretty easy. Three steps!
Step One: Install VirtualBox
Download VirtualBox here, then follow the instructions.
Step Two: Install Ubuntu Server
Download Ubuntu Server here, then create a new Virtual Machine. Name it what you will.
Under the “Network” tab in settings, change the adapter to a “Bridged Adapter”. This will force the machine to get a locally-addressable IP address.
Under the “Shared Folders” tab in settings, click the “Add” button, set the folder path to some new folder on your Windows 7 system. Set the folder name to something simple like “nodejs”.
Under the “Storage” tab, click on the “IDE Controller”, then click the little CD button. Navigate to where you downloaded the Ubuntu Server ISO and select it.
Now boot your new Virtual Machine and follow the Ubuntu Server setup options. Install whatever your little heart desires, but I recommend an SSH server so you don’t have to install it later.
Once it’s installed, run the following commands to install VirtualBox Guest Additions:
sudo apt-get update
sudo apt-get install build-essential linux-headers-$(uname -r)
sudo apt-get install virtualbox-ose-guest-x11
Next, create a “nodejs” folder in your home directory, and add the following to your rc.local file (use the command “sudo nano /etc/init.d/rc.local”):
mount -t vboxsf nodejs /home/[YOUR_USER_NAME_GOES_HERE]/nodejs
Restart and your Windows folder should be hooked up to the nodejs folder on your Ubuntu VM.
Step Three: Install Node.js
This part’s super-simple. Run the following commands:
sudo apt-get update
sudo apt-get install git-core curl build-essential openssl libssl-dev
git clone https://github.com/joyent/node.git && cd node
./configure
make
sudo make install
node -v
cd
curl http://npmjs.org/install.sh | sudo sh
That’s it! You’re set up with Node.js and Node’s package manager, NPM. If you want to test it, go to your nodejs folder (in either Windows or Ubuntu, both should be working now) and make a file called “hello.js”, and put the following in it:
var sys = require('sys');
sys.puts('Hello!');
Then go to your Ubuntu system and run:
node hello.js
References
Thanks to Sysprobs and Giant Flying Saucer. It took a while to dig them up, but these two guides are what allowed me to figure out this neat little setup.