Better front-end automation with npm scripts: a reading list

I'm going to be doing a few posts following up on my talk, Advanced Front-End Automation with npm scripts, but in the mean time, here are some excellent resources for learning about npm scripts and good systems design: Articles and talks on systems design The Systems Bible by John Gall…

Write your mocha tests in ES6

Even if you're not ready to commit to converting your main codebase to ES6 quite yet, there's a less invasive way to add it to your workflow – use it for writing tests. Thanks to the mocha-traceur compiler (which is basically just traceur-runner) you can seamlessly run your ES6 mocha tests…

Yes, You Should Code

Over the last few years I have often wondered if I deserve to call myself an engineer, or if I should even code at all. So when someone writes an article saying Women shouldn’t code. I feel like I, too, need to say something about who should and shouldn't…

Executables in npm scripts

Let's say your project uses a build tool called rutabaga, but you don't want contributors to have to globally install it to build the project. If you're just starting to use npm scripts to help simplify this, you might have gone through a process like this: npm install rutabaga --save-dev.…

Travelling with Severe Food Allergies, or Space Walking on Mars

Disclaimer: This is a demonstration of what it’s like to live and travel with life-threatening food allergies, not a scientifically accurate account of space walking. If you’re more interested in the latter check this out I want you to imagine that you’re an astronaut and you’ve…

Handling errors with gulp watch and gulp-plumber

Not as straightforward as it seems. tldr; If you use gulp-plumber in combination with gulp.watch, make sure you call this.emit('end') in gulp-plumber's handleError callback: gulp.src('./less/**/*.less') .pipe(plumber({ errorHandler: function (err) { console.log(err); this.emit('end'); } })) .pipe(less) .dest(gulp.dest('./build')…