> Why would 50 separate ```<script type="module">``` tags be needed?
because a reason for es-module's existence in the first place is to bring "large-scale modular development" to the browser. i want to test that claim (hence this thread's subject-title). > Have you tried the two described approaches and compared the result? How is > "identically" determined? no i haven't, and i suspect nobody does in practice, because they all use babel/webpack. identicality would be determined by if the app functions the same regardless whether you used a webpack-rollup or individual ```<script type="module">``` tags. -kai > On 25 May 2019, at 01:20, guest271314 <[email protected]> wrote: > > > so async-loading 50 ```<script type="module">``` tags has equivalent > > side-effect > as sync-loading single webpack-rollup (of same 50 modules)? > > Why would 50 separate ```<script type="module">``` tags be needed? > > > has anyone tried native async-loading large numbers (>10) of ```<script > > type="module">``` tags, and verify it resolves identically to using a > > single webpack-rollup? > > Have you tried the two described approaches and compared the result? > > How is "identically" determined? > > On Sat, May 25, 2019 at 6:12 AM kai zhu <[email protected] > <mailto:[email protected]>> wrote: >> Asynchronous loading differs only in >> that it takes more code to express the same logic and you have to take >> into account concurrent requests (and you need to cache the request, >> not the result), but it's otherwise the same from 1km away. > > so async-loading 50 ```<script type="module">``` tags > has equivalent side-effect > as sync-loading single webpack-rollup (of same 50 modules)? > > i have nagging suspicion of doubts. has anyone tried native async-loading > large numbers (>10) of > ```<script type="module">``` tags, and verify it resolves identically to > using a single webpack-rollup? > > again, i'm not that knowledgeable on es-modules, so above question may be > trivially true, and i'm just not aware. > > -kai > >> On 24 May 2019, at 23:41, Isiah Meadows <[email protected] >> <mailto:[email protected]>> wrote: >> >> There's two main reasons why it scales: >> >> 1. Modules are strongly encapsulated while minimizing global pollution. >> 2. The resolution algorithm applies the same logic no matter how many >> modules are loaded. >> >> It's much easier for it to scale when you write the code unaware of >> how many modules you might be loading and unaware of how deep their >> dependency graph is. Fewer assumptions here is key. It's an >> engineering problem, but a relatively simple one. >> >> If you want a short example of how sync module resolution works, you >> can take a look at this little utility I wrote: >> https://github.com/isiahmeadows/simple-require-loader >> <https://github.com/isiahmeadows/simple-require-loader>. That doesn't >> asynchronously resolve modules, but it should help explain the process >> from a synchronous standpoint. Asynchronous loading differs only in >> that it takes more code to express the same logic and you have to take >> into account concurrent requests (and you need to cache the request, >> not the result), but it's otherwise the same from 1km away. >> >> ----- >> >> Isiah Meadows >> [email protected] <mailto:[email protected]> >> www.isiahmeadows.com <http://www.isiahmeadows.com/> >> >> On Thu, May 23, 2019 at 10:49 AM kai zhu <[email protected] >> <mailto:[email protected]>> wrote: >>> >>> actually, i admit i don't know what i'm talking about. just generally >>> confused (through ignorance) on how large-scale es-module dependencies >>> resolve when loaded/imported asynchronously. >>> >>> On Wed, May 22, 2019 at 10:42 PM Logan Smyth <[email protected] >>> <mailto:[email protected]>> wrote: >>>> >>>> Can you elaborate on what loading state you need to keep track of? What is >>>> the bottleneck that you run into? Also to be sure, when you say >>>> async-load, do you mean `import()`? >>>> >>>> On Wed, May 22, 2019, 20:17 kai zhu <[email protected] >>>> <mailto:[email protected]>> wrote: >>>>> >>>>> i don't use es-modules. >>>>> but with amd/requirejs, I start having trouble with >>>>> module-initializations in nodejs/browser at ~5 async modules (that may or >>>>> may not have circular-references). 10 would be hard, and 20 would be >>>>> near inhuman for me. >>>>> >>>>> can we say its somewhat impractical for most applications to load more >>>>> than 50 async modules (with some of them having circular-references)? >>>>> and perhaps better design/spec module-loading mechanisms with this >>>>> usability concern in mind? >>>>> >>>>> p.s. its also impractical for me to async-load 5 or more modules without >>>>> using globalThis to keep track of each module's loading-state. >>>>> _______________________________________________ >>>>> es-discuss mailing list >>>>> [email protected] <mailto:[email protected]> >>>>> https://mail.mozilla.org/listinfo/es-discuss >>>>> <https://mail.mozilla.org/listinfo/es-discuss> >>> >>> _______________________________________________ >>> es-discuss mailing list >>> [email protected] <mailto:[email protected]> >>> https://mail.mozilla.org/listinfo/es-discuss >>> <https://mail.mozilla.org/listinfo/es-discuss> > > _______________________________________________ > es-discuss mailing list > [email protected] <mailto:[email protected]> > https://mail.mozilla.org/listinfo/es-discuss > <https://mail.mozilla.org/listinfo/es-discuss>
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

