interlockjs / interlock

JS bundler - inspired by Git, built on Babel.
MIT License
72 stars 7 forks source link

Design Objectives for v1.0 #12

Closed divmain closed 9 years ago

divmain commented 9 years ago

Interlock Design Objectives

This issue is meant to track high-level objectives for Interlock v1.0. It is subject to revision as the work progresses.

First-class support for large teams

baer commented 9 years ago

Additional Item: Not sure if ti belongs here or as a separate issue since it's a bit more granular than most of these but I'd say that input validation (and helpful error messages) on the base Interlock class has strong enough developer ergonomics implications that it should be a 1.0 feature.

baer commented 9 years ago

Modification: In my experience, an example is worth 1000 tutorials. Gulp did a really good job with this by providing "recipes" in their documentation section for a lot of common use cases. With enough comments this can take the place of writing and maintaining the above 4-5 tutorials.

https://github.com/gulpjs/gulp/tree/master/docs/recipes

baer commented 9 years ago

Additional Item: Some users may not want to use source maps as a developer only tool rather than distributing them with the code. In order to do this, you need a customizable sourcemapping URL. It's a simple change to take this as an option but I'd probably consider this a 1.0 feature.

https://github.com/interlockjs/interlock/blob/master/lib/compile/index.js#L98-L102

baer commented 9 years ago

Modification: Rename ES6/ES7 references to ES2015/ES2016. TC39 has been pushing really hard to have the JS community think of JS as a living spec and have committed to an annual release train for the language. As a part of that effort ES6/ES7 are now ES2015 and ES2016 respectively.

https://esdiscuss.org/topic/javascript-2015

baer commented 9 years ago

Removed Item: Since the loading of modules is so mission critical it might be a little ambitious to commit to 3 caching backends and possibly to commit to caching at all for a 1.0 release.

baer commented 9 years ago

Removed Item: Unless HTTP2 support will inform design decisions (it may) it may not need to be a part of 1.0. I don't even think nginx has production HTTP2 modules yet so I don't think this will alienate anybody.

baer commented 9 years ago

Additional Item: CLI Support

divmain commented 9 years ago

@baer.

Thanks!

baer commented 9 years ago

I'm happy to keep adding tests and if you'd like, I can take the input validation in the Interlock class. I think you're right about pulling in joi over validate.js. If there are others you'd like help with you can use issues + github's help-wanted tag :smiley:

divmain commented 9 years ago

Created tickets for remaining items.