# See http://help.github.com/ignore-files/ for more about ignoring files.

# compiled output
# /dist
/tmp

# dependencies
/node_modules
/bower_components

# misc
/.sass-cache
/connect.lock
/coverage/*
/libpeerconnection.log
npm-debug.log
testem.log
