generator-angular icon indicating copy to clipboard operation
generator-angular copied to clipboard

Generator Roadmap

Open eddiemonge opened this issue 11 years ago • 99 comments
trafficstars

In an effort to be more transparent about the project, we are creating roadmaps for everything. This is the tentative roadmap for the Angular generator.

Priority 1

  • [ ] Refactor all the tests to test everything, including all existing options
  • [ ] Make everything configurable. This will include a combination of flags, prompts and a configuration file
    • File casing in both scripts and filenames
    • Paths to where things are located tip
    • Preprocessors declaration
  • [ ] Support the project as a sub-generator for other projects (Angular full stack, MEAN stack, etc). This should happen as a side-effect of making everything configurable.
  • [ ] Different organization of files. This includes the by module (proposed AngularJS team recommendation), or by function (current). Also where assets go in dev mode (CSS, JS, HTML)

Priority 2

  • [x] Remove minsafe files. Done
  • [x] Consolidate all template files/folders into a central location Done
  • [x] Add gulp as a build tool
  • [ ] Add support for JS templates (#277)
  • [ ] Add Protractor E2E tests and templates
  • [ ] Add option for UI-Router

Priority 3

  • [X] Add support for TypeScript (#313, #539)
  • [ ] Add support for BabelJS
  • [ ] Add support for Stylus, Less
  • [ ] Add support for Jade (#420)
  • [ ] Remove heavy reliance on Bootstrap so other frameworks can be used (maybe as a prompt choice)
  • [ ] Make vanilla CSS (no framework selected) more visually appealing
  • [ ] Add ESLint to the project (probably replaces JSHint)

Priority 4

  • [ ] Support for backend implementations, whether that be proxies, rewrite rules, make it more composable for other generators or actually adding a backend REST server (highly unlikely though)
  • [ ] uncss? remove css styles

If you think there are other things that should be added to the roadmap, or have questions about any of these, please feel free to comment.

eddiemonge avatar Jan 20 '14 20:01 eddiemonge

:+1:

btford avatar Jan 20 '14 21:01 btford

Add support for JS templates = something like html2js? I was looking at this earlier. Was wondering how to integrate it into the usemin process and it seems like it involves creating a custom "flow" which would merge the templates.js from html2js into the concatinated script generated from the usemin block files.

intellix avatar Jan 20 '14 22:01 intellix

Excellent! :+1:

@passy - from his phone On Jan 20, 2014 8:00 PM, "Eddie Monge" [email protected] wrote:

In an effort to be more transparent about the project, we are creating roadmaps for everything. This is the tenative roadmap for the Angular generator. Priority 1

  • Refactor all the tests to test everything, including all existing options
  • Make everything configurable. This will include a combination of flags, prompts and a configuration file (yo-rc.json)

Priority 2

  • Remove minsafe files
  • Consolidate all template files/folders into a central location
  • Add support for JS templates

Priority 3

  • Add support for TypeScript
  • Add support for Stylus, Less
  • Add support for Jade
  • Remove Bootstrap from the project (cause a lot of issues but is open for discussion/debate)

If you think there are other things that should be added to the roadmap, or have questions about any of these, please feel free to comment

— Reply to this email directly or view it on GitHubhttps://github.com/yeoman/generator-angular/issues/553 .

passy avatar Jan 20 '14 23:01 passy

:+1: this looks sharp. Nice work putting this together @eddiemonge.

addyosmani avatar Jan 21 '14 08:01 addyosmani

Bootstrap could be considered orthogonal to the generator, but I think it's better to leave it as the default option.

The Bootstrapped version makes gen-ng look like it's done a much better job than than the plain version, because it looks more like an actual website. I think that users who are new to gen-ng will be more impressed with the BS version and you'll have a higher adoption rate, while veteran users will (hopefully) know what they want and can choose to not install BS.

jjt avatar Jan 21 '14 20:01 jjt

@jjt The vanilla CSS version needs work. I updated the P3 with a better alternative

eddiemonge avatar Jan 21 '14 20:01 eddiemonge

@eddiemonge Ah, nice! Was going to say that other frameworks would be a good addition, but didn't want to pile more on. As to a vanilla css look, including normalize.css, centering .content, and making the nav menu inline with no discs would go a long way.

jjt avatar Jan 21 '14 20:01 jjt

I'd really like to see ui-router an an option. I'm know I'm not alone in preferring ui-router as my go-to over the default ngRouter. Also, I'll second that html2js request, and what ever became of that massive discussion about feature grouping (ngBoilerplate style) vs layer grouping?

programbo avatar Jan 22 '14 15:01 programbo

+1 for feature grouping

diwa-zz avatar Jan 22 '14 15:01 diwa-zz

+1 for jade or anything that makes writing HTML more developer friendly. I really don't like HTML syntax (writing opening and closing tag), I prefer HAML.

ahimta avatar Jan 23 '14 03:01 ahimta

Does "Support the project as a sub-generator for other projects" mean having the ability to generate sub-modules for larger projects, which are then thankfully separated by feature?

34r7h avatar Jan 28 '14 02:01 34r7h

+1 for Jade

vincivince avatar Jan 28 '14 23:01 vincivince

  • Jade
  • i18n
  • html2js

-> grunt-jade-i18n + grunt-html2js

vincivince avatar Jan 28 '14 23:01 vincivince

Any thoughts on adding proper module structure? Creating controllers/services/directives into respective directories seems like it is encouraging a now-considered poorer practice.

ProLoser avatar Jan 30 '14 23:01 ProLoser

@programbo That could be explored. Would need the configuration done first as that would add exponential more complexity

@Ahimta I prefer Jade since its based off Haml but easier to use and pure JS

@irthos Possibly, I think. Not entirely sure about your question

@vdesbarres i18n most likely won't be a part of this. You can easily add that to your own project with something like angular-translate though. html2js also probably won't make it as I am leaning towards (and have been using) the grunt-angular-templates plugin for this functionality

@ProLoser Yup. Updated the milestone with a link to https://github.com/eddiemonge/generator-angular-api/ . Feel free to comment and post issues there until I get that functionality into the generator

eddiemonge avatar Jan 31 '14 01:01 eddiemonge

+1 currently i've created a /modules dir and inside each one a dir for a new module, each being a standalone generated app. a few smart grunt tweaks and all the subapps are sending their js from /dist to the main app. kinda klonky. wish the generator could be run again from the root directory and make a new sub.module if there's an app there. then the generator should register the module and inject it appropriately. tricky stuff, no doubt.

On Thu, Jan 30, 2014 at 3:14 PM, Dean Sofer [email protected]:

Any thoughts on adding proper module structure? Creating controllers/services/directives into respective directories seems like it is encouraging a now-considered poorer practice.

Reply to this email directly or view it on GitHubhttps://github.com/yeoman/generator-angular/issues/553#issuecomment-33745539 .

34r7h avatar Jan 31 '14 01:01 34r7h

:clap:

ragingwind avatar Jan 31 '14 04:01 ragingwind

I would like to see a LESS option since you are already offering bootstrap. I also second the use of ui router, and while we're at it it would be cool if we prompt them about ui bootstrap if they request bootstrap. Alternatively, maybe we should start creating a ui sub-generator instead that is designed to go along with this one.

ProLoser avatar Jan 31 '14 19:01 ProLoser

After seeing how Gulp is about streaming, I wouldn't mind seeing a Gulp version of this. I wanted to add html2js and with all of the temporary files and complexity of usemin creating it's own flow, I have no idea where to throw that into.

It would be good to say: these files I specify (templates): html2js + files found within index.html > concat > uglify

I've not played with it yet, but it looks and sounds good. I really do think the Gruntfile here is a beast.

intellix avatar Feb 01 '14 00:02 intellix

+1 for adding ui-router.

Edit: I mentioned Protractor but apparently there's already a generator and instructions for using it here: http://www.codeorbits.com/blog/2014/01/26/angularjs-end-to-end-testing-with-protractor-easy-set-up-with-yeoman/

My mistake.

jarrettch avatar Feb 05 '14 07:02 jarrettch

Protractor is great, and whilst it would be a convenience having it as the default e2e test runner, it's pretty easy to add to generator-angular projects after they have been created.

On 5 Feb 2014, at 6:18 pm, Jarrett Harris [email protected] wrote:

+1 for adding ui-router.

It seems the AngularJS team is moving towards Protractor for testing. Is adding this feasible over the next year?

Reply to this email directly or view it on GitHubhttps://github.com/yeoman/generator-angular/issues/553#issuecomment-34142856 .

programbo avatar Feb 05 '14 12:02 programbo

My vote to bumping protractor up to top priority group.

bguiz avatar Feb 16 '14 12:02 bguiz

Thanks @eddiemonge ! Great work.

timelf123 avatar Feb 18 '14 20:02 timelf123

+1 for typescript support, Great effort!

piotrwitek avatar Feb 21 '14 21:02 piotrwitek

+1 for typescript support.

Is this still the 2014 Q1 roadmap ?

diwa-zz avatar Mar 03 '14 10:03 diwa-zz

Yeah, Im a little behind schedule but trying to catch up.

eddiemonge avatar Mar 03 '14 18:03 eddiemonge

+1 for submodules

tpluscode avatar May 25 '14 20:05 tpluscode

+1 for the module structure.

yavorski avatar May 28 '14 15:05 yavorski

+1 for adding ui-router as option would be nice

didlich avatar May 30 '14 19:05 didlich

I have made some beginings of ui-router option... can someone review?

https://github.com/gintsgints/generator-angular

gintsgints avatar Jun 02 '14 05:06 gintsgints