-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Modularize steal-tools #446
Comments
We shouldn't remove the ability for steal to do a production ready build without additional work. People, in general, want the ability to do the basics without hassle. That includes minification and the transpiration necessary for a working build. Sent from my iPhone
|
We have streams now for the purpose of customizing your build. You can omit the transpile step and do it yourself, you can omit the minify step. I also wish this stuff was split up into their own packages and steal-tools would just be the package that "brought it all together" but I don't know when I'll have time to do all the work necessary to do that splitting up. |
Some people do not like exessive dependencies and bloated stuff. Esp when then take additional time to install (this is not such a big problem) but there is more serious one: different problems with flat NPM modules encourage problems with different versions you have to have babel6 and babel5 which you not need etc. I think there is need to consider allowing more modular approach, maybe @matthewp Yes I know about streams it is quite convenient thing. But now I'm talking about less dependencies and more modular approach. It is kind of obvious to me. |
I'm confused. Transpile is another project, so is uglify. What would we need to split out? Sent from my iPhone
|
Unless I'm missing something, modules that aren't useful out of the core project shouldn't be brought out. Transpile makes sense because someone else could use it in theory. Bringing things out otherwise doesn't seem to be worth the extra maintenance cost. Sent from my iPhone
|
Those dependencies are all necessary to do the bare minimum ... A minified build. I don't know what you mean by:
Can you elaborate? Sent from my iPhone
|
Well someone in "in theory" could use
This is a problem of exessive deps and bloated stuff, exessive deps are not correct in theory (though in theory they should not mess with work). In practice the can be not visible until yet not polished NPM3 glitches somewhere on server while deploy because of huge amount of deps. |
I agree with @whitecolor here, having a very large project comes with some tradeoffs. If you are using all of steal-tools features it's very convenient and you have simple APIs for the common use cases. The downside is that the wealth of features makes it difficult to understand the individual parts. Part of this is a documentation problem, but I think all big projects have this problem. If you wanted to do your own minifying (because you want to use closure) you could omit the minify stream and insert your own. But since streams were added after-the-fact their API isn't great. We pass around a BuildResult object to each stream and each stream modifies it. To do your own minification I think you would have to do something like Having separate projects forces you to make well defined APIs.
Definitely, It's often hard to predict what will be useful and what will not be, that's why I tend to think in terms of "is this a different thing". |
Right such things should be separated and be building blocks with strictly defined API. |
Isn't it released yet? |
Not yet. |
are we there yet? |
No need to ask every week, contributions welcome. |
hm, sorry that is actually another issue that I was bothering about. 😕 |
Replaced by #1035 |
I would suggest
steal-tools
to become more lightweight by removingtraceour
,transpile
dependencies, I would even consider removing deps fromclean-css
anduglify
, all this maybe not needed in custom transpile workflows.All this stuff maybe included in
donejs
by default, but steal should be as lightweight and modular as it can be.The text was updated successfully, but these errors were encountered: