If you are using the
ember-cli package to access the
ember command line tool and experience a "Bus Error 10" that crashes the ember server every time you save a file then it is probably due to an incompatible Node.js version.
To fix this issue simply head to the Node.js downloads page and get the latest version of Node for your operating system.
For a functional ember server you should be using Node.js version 0.10.21 or higher, personally I upgraded from 0.10.20 to 0.10.29 and now the server runs perfectly, including the live reload functionality.
Testing a static website can be done simply by opening the HTML files in a web browser, but for some functionality to perform correctly, such as local AJAX calls, the files need to be served from a web server.
Alternatively, you may want to check out some static files on your mobile device. You can do this easily by starting a simple web server for the project and navigate to your computers IP address with the given server port.
The easiest way to do this on UNIX based systems is to use the Python Simple HTTP Server, like so:
python -m SimpleHTTPServer 8080
Run this command in the same directory as your project from the terminal, then point your browser to
This is a great way to get a server running in seconds, for basic testing, but I have found that as the number of files in the project increases, the stability of the server decreases. Often files will not be passed to the client and 404 errors are encountered. For these reasons I have investigated a stronger solution that is still simple to setup. This leads me to Node.JS.
Node.JS is no stranger to web servers, in fact this is often the primary task of a Node application.
"Connect" is a Node.JS middleware application that makes the creation of simple web servers trivial.
To get Connect running, first install it via
npm install -g connect
Here is a web server that can be used, simply paste the code into a file called "server.js" in your project's root directory.
var connect = require( 'connect' ),
http = require( 'http' );
app = connect()
.use( connect.logger( 'dev' ) )
.use( connect.static( __dirname ) );
http.createServer( app ).listen( 8080 );
Finally run the server from the terminal like so:
If no error was received, the server is running and files can be viewed by browsing
http://localhost:8080, just like in the Python example.
I have not had any trouble with the Connect version of my server and it comes built with a nice development logger, showing what files were requested and with what status. This output can be viewed live in the terminal window as requests come in.
The official Node.JS install guide recommends manually downloading and building the Node.JS package for Debian. This can be done using the following set of commands:
sudo apt-get install python g++ make checkinstall
mkdir ~/node_js_src && cd $_
wget -N http://nodejs.org/dist/node-latest.tar.gz
tar xzvf node-latest.tar.gz && cd node-v*
sudo dpkg -i node_*
This install method should work fine but will take a long time to complete on the Raspberry Pi's hardware. For this reason I experimented a little and found a quicker install method that doesn't require a manual compile, by using the Ubuntu package.
This install method will be much faster than the official method but is not designed for Debian Wheezy, so use at your own risk! Personally I have not had any trouble with my node install yet but I cannot guarantee this will be the case for anyone else.
sudo apt-get update
sudo apt-get install -y python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
At this point the file with the new repository details must be edited. Open the file:
/etc/apt/sources.list.d/chris-lea-node_js-wheezy.list with a text editor like
vim and change the word "wheezy" to "lucid". Thanks to Ken Yap for this hint.
Now, go on and finish installing Node.
sudo apt-get update
sudo apt-get install -y nodejs