Using BrowserSync with Harp

So you love using Harp, but you hate refreshing the browser every time you've made a change? BrowserSync to the rescue!

The good guys at Harp are working on building this into the platform, but until then it's actually very easy to do yourself. You just need npm and to enter a single command in the Terminal.

First we need to install BrowserSync with npm:

npm install -g browser-sync

Now we just have to run the Harp server, and then start BrowserSync as proxy in front of it:

harp server & 
browser-sync start --proxy 'localhost:9000' --files 'public/**/*.jade, public/**/*.md, public/**/*.less'

As you can see, we are now watching for changes to the jade, markdown and less files in our public folder, and BrowserSync will automatically refresh your browser when any of these files change.


It can be a bit difficult to remember that long command, so let's create a small script to do this. I'll show how to do this with either npm or as a bash script.


In your package.json under "scripts": {} add the script under a good name like "dev":

"scripts": {
  "dev": "harp server & browser-sync start --proxy 'localhost:9000' --files 'public/**/*.jade, public/**/*.md, public/**/*.less, public/**/_data.json'"

Now you can run Harp with BrowserSync using this command:

npm run dev


If you don't use npm, you can create a bash script instead. In the root of your project folder create a file called browsersync, and paste the following into that file:

harp server &
browser-sync start --proxy 'localhost:9000' --files 'public/**/*.jade, public/**/*.md, public/**/*.less'

Then we need to make that file executable:

chmod +x browsersync

And now we can run it:


Enjoy the stress free world of coding with automatic browser updates.