1.6
This a major release for ng-fullstack.
The generator was pretty much rewritten from bottom up, so things are easier to maintain in the long run.
There's much more to come, but a lot of stuff was already added in this version, let's get to it!
Improved wiki
Thanks to @georgeedwards, we've got an easier to follow wiki page. Since it's a place where new comers go to check how the generator works, it was critical to improve it.
We've got more stuff to put there, but I really like where it's going.
Http2 ready
Since the generator was created to be in the bleeding edge of awesome stuff out there, we always kept an eye on http2. And hey, it can be used in many cases already. So, for this version of the generator, we focused on having the build ready for http2.
Better build structure
Until now, we had a single gulpfile.js
with all our tasks. build_css
, build_js
, build_html
, etc. It was all in the same messy file.
For 1.6, we split the tasks in different files, they live in the tasks
folder and, obviously, are much easier to maintain and to extend.
Also, to make it easier to scale, we put the task names in a const file, so it's easier to use the same task in different files.
Angular 2 integration
Angular1 is part of the core of the generator since its birth, and there's still a lot of people using it out there, so, it's not going anywhere.
But, since Angular2 started to be developed, we wanted to have it in the generator as soon as possible. And here it is - one option away and you'll be working with Angular2.
Client and Server only option
Even though the name of the project is ng-fullstack, I think it could be too much for some projects to have both client and server side generation - sometimes, you already have the server ready or you already have the client ready and you only want to use one or the other. So, now you can simply answer a question in the generator and get a client only app. You'll still have the gulp
tasks and your client will be powered by aliv - a new and powerful alive server.
Full client module
When you're creating an application from zero, you'd have to create every module and its stuff separated, like: $ yo ng-fullstack:controller user --feature user
, $ yo ng-fullstack:service user --feature user
, $ yo ng-fullstack:directive user --feature user
, etc. But, that could be better. Thinking about that, we created the module
subgenerator.
When you run $ yo ng-fullstack:module user --feature user
, you'll get:
client/dev/family/factory/user.js
client/dev/family/services/user.js
client/dev/family/models/user.js
client/dev/family/controllers/user.js
client/dev/family/directives/user.js
client/dev/family/styles/user.css
client/dev/family/templates/user.html
tests/client/family/factory/user_test.js
tests/client/family/components/user_test.js
tests/client/family/services/user_test.js
tests/client/family/models/user_test.js
tests/client/family/directives/user_test.js
Better consistency between generated files
One of the things that are incredible annoying is when some generators try to help you to generate a file, but then it either screws up its or its file name. We decided to resolve it by taking by granted the name you give us; for example, if you run $ yo ng-fullstack:controller something --feature something
, you'll get a something
file with the name something
inside of it, no sufix.
Much more
Since 1.5, many things were improved and fixed. But the above are the highlights.
Road to 1.7
- HTTP/2 - this is the priority of the version. we'll attack the http2 way. We'll implement the http2/https server for node and for go and make the build even better to support it;
- PassportJS - we might also have an option to generate a boilerplate for PassporteJS integration;
- src/test - Side by side source and test files, golang style.