I've vetted webpack (and the rest) extensively. Less ecosystem. More complex config. No transforms.
Here's a thing I wrote on the modules front. Not directly applicable but possibly relevant and at worst geek entertaining. ;) https://medium.com/@brianleroux/es6-modules-amd-and-commonjs-c1acefbe6fc0 On Thu, Dec 11, 2014 at 2:11 PM, Steven Gill <stevengil...@gmail.com> wrote: > Realized I wasn't clear, but startup/run time is definitely faster. One of > the benefits of switching to a system like this. > > Build time is a few ms slower. > > On Thu, Dec 11, 2014 at 2:06 PM, Steven Gill <stevengil...@gmail.com> > wrote: > > > > > > > On Thu, Dec 11, 2014 at 1:45 PM, Michal Mocny <mmo...@chromium.org> > wrote: > > > >> 25MB is for the one-time cordova-cli install, and not overhead for the > >> app. Its not perfect but not a blocker imho. > >> > > > > Agreed > > > > > >> There are more troubling things about the change than the size overhead: > >> - I don't think browserify has "baked" at all. It was landed behind a > >> flag, but is it actually used anywhere? > > > > - Why browserify and not webpack (aside: its 13Mb..)? Was it compared at > >> all.. > >> > > > > Not sure. I am unfamiliar with webpack. > > > > But one is integrated into our system... > > > > The node community are big backers of browserify. It had a dedicated > track > > at JSFEST this week. Not suggesting popularity be the deciding factor > > though :P > > > > > > > >> - Last time it was discussed, there were still several breaking changes > >> for > >> plugins. Were they resolved? > >> > >> Yes. Transforms were used to deal with the issues. > > > > > >> Anyway, how can we get data on the change to see if it is positive?: > >> - Existing plugins continue to work (We run mobile spec, and get > >> downstream > >> distributions run tests on their plugins). > >> > > > > Android and IOS had same success rate on mobile spec for browserify > system > > last time I tested. Need to do more tests with other platforms. Seems one > > way to get platforms to test it is to make default + fix any problems we > > see before releasing > > > > - Startup time is not negatively affected. > >> > > > > Current system we have to read cordova_plugins at runtime. Browserify > > handles this at build time so I would imagine it would speed up that > part. > > Flip side, all the plugins get executed immediately with browserify (has > > benefits too). > > > > - Build/prepare time is not negatively affected. > > > > > >> Is that fair? > >> > >> -Michal > >> > >> On Thu, Dec 11, 2014 at 2:38 PM, Andrew Grieve <agri...@chromium.org> > >> wrote: > >> > >> > I'd really like to get it fully spelled out *why* browserify is the > >> right > >> > tool for this. Some thoughts below: > >> > > >> > On Wed, Dec 10, 2014 at 8:35 PM, Brian LeRoux <b...@brian.io> wrote: > >> > > >> > > we should move browserify to main and drop that insane concat code > >> > > > >> > > its not heavyweight at all. it creates a hash in iife with deps > mapped > >> > > in...as to why dep mgmt is better than concatenating...I don't > think we > >> need > >> > to > >> > > waste our time talking about that! > >> > > >> > > >> > > >> > What makes the concat code insane? > >> > - It's easy to understand and make changes to > >> > - It seems to work fine and is quite stable > >> > - It has no dependencies (it's 52kb within cordova-js/tasks/lib) > >> > > >> > Browserify seems a bit scary to me: > >> > - It's 25MB and has a tonne of dependencies > >> > - Do we really need all of that functionality? > >> > > >> > I think it would actually help a lot to talk about dependency > >> management. > >> > - Right now cordova-js creates a module for every file in src/ > >> > - Plugins list each module explicitly in their plugin.xml > >> > With browserify, are you envisioning that this model change at all? > >> > > >> > > >> > Why change anything? > >> > - cordova-lib should concat plugin modules with cordova.js on prepare > >> (this > >> > is the motivation stated in the JIRA. totally on board with this!) > >> > What else would I like to see changed? > >> > - exec.js (and any other platform-specific modules) should move to > live > >> in > >> > platform repos > >> > - This will make code changes that affect both much easier > >> > - Platforms should depend on cordova-js via package.json and snapshot > >> > generation should happen in bin/create as well as plugin add/rm > >> > - This will remove the (somewhat) annoying step of snapshotting > >> > - This will allow cordova-js to be released as it's own artifact > >> > - Good because we can do things like add Promise polyfill and not > >> need > >> > to release all platforms to pick it up > >> > - A bit annoying since it's one more thing to release, but likely > >> won't > >> > get released often. > >> > > >> > > >> > Please don't look at my email as trying to derail the work Anis did. I > >> > believe most of it is necessary to accomplish these goals whether we > use > >> > Browserify, our own, or some other concattenator. I just question > >> whether > >> > 25MB is too much complexity for what we need / want. > >> > > >> > > >> > > >> > > >> > On Thu, Dec 11, 2014 at 2:10 PM, Joe Bowser <bows...@gmail.com> > wrote: > >> > > >> > > This should be a major, but yeah, I'm fine with making this the > >> default. > >> > > > >> > > On Thu, Dec 11, 2014, 11:08 AM Brian LeRoux <b...@brian.io> wrote: > >> > > > >> > > > so I think this has baked long enough! lets make it the default > and > >> > suss > >> > > > the bugs. > >> > > > > >> > > > On Thu, Jul 10, 2014 at 3:36 AM, Ally Ogilvie < > aogil...@wizcorp.jp> > >> > > wrote: > >> > > > > >> > > > > Ace, look forward to browser/web as platform. Combined Web and > >> Native > >> > > API > >> > > > > plugin for Cordova! Yay! > >> > > > > Thanks for the clarification Michal. > >> > > > > > >> > > > > > >> > > > > > >> > > > > On Tue, Jul 8, 2014 at 6:07 AM, Anis KADRI < > anis.ka...@gmail.com> > >> > > wrote: > >> > > > > > >> > > > > > Right, browserify is just a way to package cordova.js that > >> should > >> > > make > >> > > > it > >> > > > > > easier to add the browser as a platform so might not be > directly > >> > > > related > >> > > > > > but is somewhat related :-} > >> > > > > > > >> > > > > > > >> > > > > > On Mon, Jul 7, 2014 at 4:45 PM, Michal Mocny < > >> mmo...@chromium.org> > >> > > > > wrote: > >> > > > > > > >> > > > > > > I think Ally may be confusing what this does?: This > browserify > >> > work > >> > > > is > >> > > > > > not > >> > > > > > > a way to get cordova to run in a desktop browser, its just a > >> > means > >> > > > for > >> > > > > > > packaging cordova.js. I think there should be no visible > >> change > >> > to > >> > > > end > >> > > > > > > users. > >> > > > > > > > >> > > > > > > There is a separate effort to target the browser as a > >> platform, > >> > and > >> > > > it > >> > > > > > may > >> > > > > > > be true that the browserify work helps with that, but its > not > >> > > > directly > >> > > > > > > related. > >> > > > > > > > >> > > > > > > > >> > > > > > > On Mon, Jul 7, 2014 at 3:58 PM, Anis KADRI < > >> anis.ka...@gmail.com > >> > > > >> > > > > wrote: > >> > > > > > > > >> > > > > > > > On Sun, Jun 29, 2014 at 9:54 PM, Ally Ogilvie < > >> > > aogil...@wizcorp.jp > >> > > > > > >> > > > > > > wrote: > >> > > > > > > > > >> > > > > > > > > Anis that is really sweet. > >> > > > > > > > > If this hits CLI, plugin.xml will have sections for > >> plugins > >> > to > >> > > do > >> > > > > web > >> > > > > > > > > actions? > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > Not sure I understand what you mean by web actions. > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > TBH.. i've always wanted a cordova platform add web... > but > >> > i'd > >> > > be > >> > > > > > happy > >> > > > > > > > > enough with a prepare for browser only mode. > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > `cordova platform add web` is part of the plan. > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > > >> > > > > > > > > Seeing a lot of use cases (e.g. Facebook plugin etc.) > >> where > >> > > there > >> > > > > are > >> > > > > > > JS, > >> > > > > > > > > iOS & Android SDKs and a Cordova Plugin wants to support > >> the > >> > > same > >> > > > > API > >> > > > > > > on > >> > > > > > > > > all platforms. > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > Didn't think of that but it is applicable indeed. > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > On Sat, Jun 21, 2014 at 9:26 AM, Anis KADRI < > >> > > > anis.ka...@gmail.com> > >> > > > > > > > wrote: > >> > > > > > > > > > >> > > > > > > > > > Ok cool. I can look at adding a --browserify option > for > >> run > >> > > and > >> > > > > > > > prepare. > >> > > > > > > > > I > >> > > > > > > > > > logged an issue for it [1] > >> > > > > > > > > > > >> > > > > > > > > > [1] https://issues.apache.org/jira/browse/CB-7001 > >> > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > On Thu, Jun 19, 2014 at 5:57 PM, Andrew Grieve < > >> > > > > > agri...@chromium.org > >> > > > > > > > > >> > > > > > > > > > wrote: > >> > > > > > > > > > > >> > > > > > > > > > > Thanks Anis! > >> > > > > > > > > > > > >> > > > > > > > > > > Tougher for CLI since it's actually the prepare step > >> that > >> > > > > creates > >> > > > > > > > > > > cordova_plugins.js, but longer term (medium term?) I > >> > don't > >> > > > see > >> > > > > > why > >> > > > > > > we > >> > > > > > > > > > > shouldn't just turn it on always anyways. > >> > > > > > > > > > > > >> > > > > > > > > > > So... Maybe cordova prepare --browserify? > >> > > > > > > > > > > Build prepares first, so will also need: cordova run > >> > > android > >> > > > > > > > > --browserify > >> > > > > > > > > > > > >> > > > > > > > > > > I haven't looked at it yet. Google IO is next week > and > >> > it's > >> > > > > been > >> > > > > > > > > > consuming > >> > > > > > > > > > > most of our time the last few weeks. Will definitely > >> play > >> > > > with > >> > > > > it > >> > > > > > > > next > >> > > > > > > > > > next > >> > > > > > > > > > > week though! > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > On Thu, Jun 19, 2014 at 6:28 PM, Anis KADRI < > >> > > > > > anis.ka...@gmail.com> > >> > > > > > > > > > wrote: > >> > > > > > > > > > > > >> > > > > > > > > > >> Sorry. I forgot you asked the question. There was > no > >> > issue > >> > > > but > >> > > > > > > there > >> > > > > > > > > is > >> > > > > > > > > > >> one now. > >> > > > > > > > > > >> https://issues.apache.org/jira/browse/CB-6990 > >> > > > > > > > > > >> > >> > > > > > > > > > >> This "feature" is plugman only for now. How > >> important is > >> > > it > >> > > > to > >> > > > > > > wire > >> > > > > > > > it > >> > > > > > > > > > >> to CLI ? Have you guys had time to test it out > yet ? > >> > How > >> > > > > would > >> > > > > > it > >> > > > > > > > > > >> work with CLI ? Add another flag such as "cordova > >> plugin > >> > > add > >> > > > > > > > > > >> --browserify" ? > >> > > > > > > > > > >> > >> > > > > > > > > > >> On Thu, Jun 19, 2014 at 9:28 AM, Andrew Grieve < > >> > > > > > > > agri...@chromium.org> > >> > > > > > > > > > >> wrote: > >> > > > > > > > > > >> > bump > >> > > > > > > > > > >> > > >> > > > > > > > > > >> > > >> > > > > > > > > > >> > On Mon, Jun 16, 2014 at 12:51 PM, Andrew Grieve < > >> > > > > > > > > agri...@chromium.org > >> > > > > > > > > > > > >> > > > > > > > > > >> > wrote: > >> > > > > > > > > > >> >> > >> > > > > > > > > > >> >> Cool, yes! Thanks for the update! > >> > > > > > > > > > >> >> > >> > > > > > > > > > >> >> Is there a JIRA for this? Was asked in > >> > > > > > > > > > >> >> https://issues.apache.org/jira/browse/CB-5671. > >> > > > > > > > > > >> >> > >> > > > > > > > > > >> >> > >> > > > > > > > > > >> >> > >> > > > > > > > > > >> >> > >> > > > > > > > > > >> >> On Mon, Jun 16, 2014 at 10:21 AM, Michal Mocny < > >> > > > > > > > > mmo...@chromium.org> > >> > > > > > > > > > >> >> wrote: > >> > > > > > > > > > >> >>> > >> > > > > > > > > > >> >>> Awesome Anis. > >> > > > > > > > > > >> >>> > >> > > > > > > > > > >> >>> Will gladly take a look at this later today. > >> Just > >> > > > wanted > >> > > > > to > >> > > > > > > > send > >> > > > > > > > > a > >> > > > > > > > > > >> quick > >> > > > > > > > > > >> >>> thanks for landing this this way, and for the > >> useful > >> > > > > report. > >> > > > > > > > > > >> >>> > >> > > > > > > > > > >> >>> -Michal > >> > > > > > > > > > >> >>> > >> > > > > > > > > > >> >>> > >> > > > > > > > > > >> >>> On Fri, Jun 13, 2014 at 7:55 PM, Anis KADRI < > >> > > > > > > > anis.ka...@gmail.com > >> > > > > > > > > > > >> > > > > > > > > > >> wrote: > >> > > > > > > > > > >> >>> > >> > > > > > > > > > >> >>> > Yo, > >> > > > > > > > > > >> >>> > > >> > > > > > > > > > >> >>> > Just wanted to let everyone know that I added > >> > > > browserify > >> > > > > > > > support > >> > > > > > > > > > to > >> > > > > > > > > > >> >>> > plugman (behind a flag for now). CLI is not > >> hooked > >> > > to > >> > > > > this > >> > > > > > > > yet. > >> > > > > > > > > > Here > >> > > > > > > > > > >> >>> > is how it works: > >> > > > > > > > > > >> >>> > > >> > > > > > > > > > >> >>> > plugman install --browserify --plugin > [PLUGIN] > >> > > > > --platform > >> > > > > > > > > > [PLATFORM] > >> > > > > > > > > > >> >>> > --project [PROJECT_PATH] > >> > > > > > > > > > >> >>> > > >> > > > > > > > > > >> >>> > will generate a browserify version of > >> cordova.js. > >> > > > > Plugins > >> > > > > > > and > >> > > > > > > > > > >> >>> > everything is bundled in. This version passes > >> > > > > mobile-spec > >> > > > > > on > >> > > > > > > > iOS > >> > > > > > > > > > and > >> > > > > > > > > > >> >>> > Android. I am not yet setup to test other > >> > platforms. > >> > > > > > > > > > >> >>> > > >> > > > > > > > > > >> >>> > plugman install --plugin [PLUGIN] --platform > >> > > > [PLATFORM] > >> > > > > > > > > --project > >> > > > > > > > > > >> >>> > [PROJECT_PATH] > >> > > > > > > > > > >> >>> > > >> > > > > > > > > > >> >>> > Will continue to generate cordova.js the way > it > >> > used > >> > > > to. > >> > > > > > > > > > >> >>> > > >> > > > > > > > > > >> >>> > Because some of you really care about > >> benchmarks > >> > > here > >> > > > is > >> > > > > > > some > >> > > > > > > > > > >> >>> > comparison for dependencies-plugin install: > >> > > > > > > > > > >> >>> > > >> > > > > > > > > > >> >>> > No browserify: > >> > > > > > > > > > >> >>> > > >> > > > > > > > > > >> >>> > real 0m9.546s > >> > > > > > > > > > >> >>> > user 0m4.673s > >> > > > > > > > > > >> >>> > sys 0m0.692s > >> > > > > > > > > > >> >>> > > >> > > > > > > > > > >> >>> > Browserify: > >> > > > > > > > > > >> >>> > real 0m9.861s > >> > > > > > > > > > >> >>> > user 0m4.759s > >> > > > > > > > > > >> >>> > sys 0m0.648s > >> > > > > > > > > > >> >>> > > >> > > > > > > > > > >> >>> > All cordova-lib tests are passing so I am > >> assuming > >> > > > this > >> > > > > > has > >> > > > > > > > > > minimal > >> > > > > > > > > > >> >>> > impact but LET ME KNOW otherwise. > >> > > > > > > > > > >> >>> > > >> > > > > > > > > > >> >>> > Anis > >> > > > > > > > > > >> >>> > > >> > > > > > > > > > >> >> > >> > > > > > > > > > >> >> > >> > > > > > > > > > >> > > >> > > > > > > > > > >> > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > -- > >> > > > > > > > > <http://www.wizcorp.jp/>Ally Ogilvie > >> > > > > > > > > Lead Developer - MobDev. | Wizcorp Inc. < > >> > > http://www.wizcorp.jp/> > >> > > > > > > > > ------------------------------ > >> > > > > > > > > TECH . GAMING . OPEN-SOURCE WIZARDS+ 81 (0)3-4550-1448 > | > >> > > Website > >> > > > > > > > > <http://www.wizcorp.jp/> | Twitter < > >> > > https://twitter.com/Wizcorp> > >> > > > | > >> > > > > > > > > Facebook > >> > > > > > > > > <http://www.facebook.com/Wizcorp> | LinkedIn > >> > > > > > > > > <http://www.linkedin.com/company/wizcorp> > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > -- > >> > > > > <http://www.wizcorp.jp/>Ally Ogilvie > >> > > > > Lead Developer - MobDev. | Wizcorp Inc. <http://www.wizcorp.jp/ > > > >> > > > > ------------------------------ > >> > > > > TECH . GAMING . OPEN-SOURCE WIZARDS+ 81 (0)3-4550-1448 | > Website > >> > > > > <http://www.wizcorp.jp/> | Twitter <https://twitter.com/Wizcorp > > > >> | > >> > > > > Facebook > >> > > > > <http://www.facebook.com/Wizcorp> | LinkedIn > >> > > > > <http://www.linkedin.com/company/wizcorp> > >> > > > > > >> > > > > >> > > > >> > > >> > > > > >