It has now been more than a year since we (@Swiip and @zckrs), started work on our Yeoman generator. Today we are celebrating the release of our first major and stable version: generator-gulp-angular 1.0.0.
At first, we wanted to make a good merge of generator-gulp-webapp and generator-angular, as we worked on Angular but grew tired of Grunt's verbosity. Then, the project popularity started to increase and so did its ambition.
We followed all the precepts of Yeoman and added our own:
- Provide a well written seed project, following the best recommendations for folder structure and code style.
- Offer options to enable the user to start with the best tooling and optimizations using the latest technologies.
- Use automatic injection in different parts of the project: script tags both vendor and sources in the index.html, styles files, vendor, css or preprocessed.
- Provide test coverage, as perfect as possible, for both the generator and also code it generated.
We are not joking around when we talk about this being a stable version. We integrated lots of technologies and languages, from CoffeeScript to TypeScript, to Sass to Stylus. The number of combinations exceeds several million! We wrote tests, documentation and fixed issues for 12 minor versions and 2 release candidates, to be able to deliver a perfectly configured seed project, no matter the options you choose.
We integrated many optimizations for your web application using a few Gulp plugins:
- browserSync: full-featured development web server with livereload and device sync
- ngAnnotate: convert simple injection to complete syntax to be minification proof
- angular-templatecache: all HTML partials will be converted to JS to be bundled in the application
- watch: watch your source files and recompile them automatically
- useref: allow configuration of your files in comments of your HTML file
- clean-css: optimize all your CSS
- rev: add a hash in the file names to prevent browser cache problems
- karma: out of the box unit test configuration with karma
- protractor: out of the box e2e test configuration with protractor
2.0.0 on the road...
But version 1.0.0 is not the end of the road. While maintaining the v1 branch, we started a new Github organization called FountainJS targeting a futuristic v2 version. As the context of the build tools has greatly evolved over a year, it’ll be a reboot of the code base. The major selling point will be to use Yeoman Generator's composition support, to upgrade to Gulp 4 and to write it in ES6. Finally, we hope to open new horizons in terms of options: dependency management for sure, but why not also Web frameworks (someone talked about React?) and also a backend.