-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Modularization #996
Modularization #996
Conversation
Add .DS_Store Extract util methods Fix createTester callback Fix notid exports Refactor settimediate and nexttick Fix dep path Create bundle using browserify Rename main file Rename main file Rename main file Use browserify standalone mode Modular interface for main methods 📦 Deleted unnecessary test Add script to generate modules package.json Delete noconflict module Improve how to generat browser bundle Update util modules references Add a way to generate module scaffold Fix version Remove unnecessary dependencies Require the dependency Add missing methods Add dependencies for each module Bumped 0.4.0 Add useful scripts Add .npmignore Updated Add npmignore files Refactor Fix little issues Fix library name Fix isarray module Update script Fix typo Fix template links Update deps Revert "Fix template links" This reverts commit 112a382. Bump 0.5.1 Fix mapseries reference Bump 0.5.2
I have managed to remove most of the string parsing logic included by lodash -- the only string parsing code remaining is Also @jdalton it'd be nice if there was a stable ref I could link for a |
Good idea!
Lodash v4 will be released on the 12th. |
Cool, so there will be a stable es-4.0.0 ref in v4?
|
Yep, just as there's a stable 3.10.1 ref. |
What does the testing situation look like? Do we just test the bundle? It might be handy to test the es6 modules directly somehow as well, just to verify that Async works in both forms. |
Updated the |
Nice! 👍 that is totally reasonable in my opinion, thoughts @aearly? |
Found another cheap win which will bring the size down to |
Really excellent 👍 . Lodash is totally worth 1.4kb 😛 . The only danger I see is relying on an internal lodash function, but those are pretty stable, right? |
It depends. When relying on internals I usually avoid the |
Just checked and the base methods used are totally stable. You should have no problems with them. |
I'm thinking of a clean way to publish the individual method files without polluting the base directory. My initial thought is to copy the package.json/readme/changelog and whatever else we need to the
Anyone have better ideas? |
I am jumping on this bandwaggon waaay too late but: Why all this effort of splitting it out to own packages? This will make npm just slower. npm supports
Then you could do |
We're not doing that at the moment, but the benefit is the download for an individual method is smaller than the entire async package |
Though with npm's cache, packages of a given version are only downloaded once. |
I want to release 2.0 when all the issues in the milestone are complete. (All the breaking changes). I'd also like to get the docs migrated to jsdoc and the tests ported to Mocha, but those aren't required. |
@megawac I do understand the need for splitting out the modules in own files/modules as this will reduce the size if used by packages such as a browserify but when downloading the files through npm this method should slow down things (considering the package.json and other overhead). Browserify (and babel afaik) do support deep binding |
Sure, assuming that none of the user's depencies require Also, at the moment babel does nothing in regards to @aearly I think it makes sense to set a package.json field for |
@megawac Users likely will always be able to do |
For reference, I measured the require time of using
|
Summary | |
Computer | |
Processor | 4x Intel(R) Core(TM) i5-4300M CPU @ 2.60GHz |
Memory | 11988MB (7240MB used) |
Operating System | Ubuntu 14.04.4 LTS |
Cool! Thanks for backing up my gut assertions with some actual data. 😄 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i need my information to run as my new device im on
@@ -0,0 +1,3 @@ | |||
{ | |||
"presets": ["es2015"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
my information
A work in progress to bring modular support and lodash implementations of certain methods.
Previous discussion be found here #984.
Resolves #984
See https://github.com/caolan/async/tree/modularization/build for the generated bundles
TODOS
npm test
cd build/
possibly? create npm release for each modulebaseOrderBy
in the implementation ofinternal/flatten
?move documentation to jsdoc format (bonus?)save for later