On 12 September 2014 18:02, John Barton <[email protected]> wrote:
> Is there any difference between <script type='module'> and <module> other > than spelling? > Good point - <script type=module> is exactly the same and already implemented in the module loader and Traceur. Perhaps it is a better focus for polyfilling in this scenario. > jjb > > > On Fri, Sep 12, 2014 at 8:46 AM, Guy Bedford <[email protected]> wrote: > >> We do have a PR on this for the module loader ready to go ( >> https://github.com/ModuleLoader/es6-module-loader/pull/156). We could >> generalise it to apply in a hookable way so that the HTML imports polyfill >> could call out to this as well potentially. >> >> On 12 September 2014 17:28, Sébastien Cevey <[email protected]> >> wrote: >> >>> Ah yeah that'd be nice. Where is the work on <module> being done? Has it >>> been polyfilled by any library yet? >>> >>> On 11 September 2014 13:41, Guy Bedford <[email protected]> wrote: >>> >>>> Note that this same concept can apply to anonymous modules so that we >>>> get identical execution order to what we would expect from scripts: >>>> >>>> <link rel="import" href="../bower_components/polymer/polymer.html"> >>>> >>>> <!-- jquery is loaded immediately through a System.define call --> >>>> <!-- execution only happens when ready, through HTML imports trigger - >>>> System.get call --> >>>> <module> >>>> import $ from 'jquery'; >>>> >>>> Polymer('windsock-data', ...); >>>> </module> >>>> >>>> <polymer-element name="windsock-data" attributes="src refresh >>>> sink-notices"> >>>> </polymer-element> >>>> >>>> On 11 September 2014 14:04, Guy Bedford <[email protected]> wrote: >>>> >>>>> Thanks so much Sebastien for posting this feedback. I think the >>>>> methods you have here really are the best way to combine SystemJS with web >>>>> components. It would be great to take the lessons you have learnt here and >>>>> be able to turn them into something we can share more widely. >>>>> >>>>> In terms of the build, it sounds like exactly the right way to do it >>>>> as well. >>>>> >>>>> The issue you had with needing to import a web component dependency >>>>> could be avoided if we had support for the <module> tag in web components. >>>>> >>>>> Consider if your example at >>>>> https://github.com/guardian/windsock/blob/master/src/main/resources/public/elements/windsock-data.html >>>>> looked like: >>>>> >>>>> <link rel="import" href="../bower_components/polymer/polymer.html"> >>>>> >>>>> <module name="windsock:elements/windsock-data"> >>>>> >>>>> <polymer-element name="windsock-data" attributes="src refresh >>>>> sink-notices"> >>>>> </polymer-element> >>>>> >>>>> >>>>> *If we could propose that the <module> tag loads, but doesn't execute >>>>> **(System.load >>>>> provides this functionality) **until the modules in the sub-imports >>>>> have executed first, we may have a unified solution for that.* >>>>> >>>>> I'd be very interested to hear from the web component team if >>>>> something along these lines could be possible between the module loader >>>>> and >>>>> HTML import specifications in due course. >>>>> >>>>> >>>>> On 20 August 2014 21:26, 'Steve Orvell' via Polymer < >>>>> [email protected]> wrote: >>>>> >>>>>> Thanks for the detailed feedback. >>>>>> >>>>>> It seems like you have a handle on the build issues. There a lot of >>>>>> options here but if you can think of a specific feature vulcanize should >>>>>> have, please feel free to post an issue. Maybe you already did this, but >>>>>> note that Vulcanize can concat scripts in imports. If that output needs >>>>>> further processing for SystemJS, perhaps Vulcanizer's output is the input >>>>>> for the SystemJS compressor. >>>>>> >>>>>> For the ordering issues, the Polymer requirement is that dependencies >>>>>> are registered in the order in which they are used. For example, if x-bar >>>>>> extends x-foo, x-foo must be registered first. Polymer 0.3.5 improved >>>>>> support for async scripts. Polymer now waits to register elements until >>>>>> all >>>>>> `<polymer-element>` declarations have their accompanying scripts before >>>>>> registering elements. If you used this version, I don't expect to need to >>>>>> specifically order things other than the noted requirement. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Wed, Aug 20, 2014 at 3:45 AM, Sébastien Cevey < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> (I've been wanting to post this for a while, but this thread on >>>>>>> requirejs+polymer prompted me to give it a try, apologies for the >>>>>>> Subject >>>>>>> hijacking) >>>>>>> >>>>>>> FYI, and as discussed with Eric & Addy at the recent Polymer event >>>>>>> at the Google Campus in London, I've been experimenting with using >>>>>>> Polymer >>>>>>> in combination with SystemJS. In other words, I'm using >>>>>>> <script>System.import('the-js');</script> inside the HTMLImport, >>>>>>> instead of >>>>>>> a static <script src="the-js.js"></script> definition. >>>>>>> >>>>>>> The advantage of using SystemJS is that I can then write my JS >>>>>>> definition using ES6 (or in fact anything I want, incl. AMD or CJS), >>>>>>> using >>>>>>> the ES6 module import syntax too. Makes the code a lot neater, and avoid >>>>>>> faffing with the manual RequireJS config (I use jspm to generate and >>>>>>> manage >>>>>>> the System config). It is also the only sane way I can think of (besides >>>>>>> RequireJS) to have an HTML import depend on a JS file that itself >>>>>>> depends >>>>>>> on another JS file. >>>>>>> >>>>>>> The code is Open Source here if you want to take a look: >>>>>>> >>>>>>> >>>>>>> https://github.com/guardian/windsock/tree/master/src/main/resources/public/elements >>>>>>> (apologies for the poor docs at the root, it's not yet 100% ready >>>>>>> for prime time...) >>>>>>> >>>>>>> >>>>>>> One of the issues with using System.import (or RequireJS' require, >>>>>>> for that matter) in the HTML import is that unlike the static <script>, >>>>>>> it >>>>>>> is asynchronous. I had issues when using composition of components, >>>>>>> where >>>>>>> Polymer was failing some template binding due to dependencies being >>>>>>> defined >>>>>>> in the wrong order. I had to resort to manually expliciting the >>>>>>> dependencies of the JS files *on top of* the declarative dependencies in >>>>>>> the HTML files. >>>>>>> >>>>>>> For example, see the following JS dependency: >>>>>>> >>>>>>> >>>>>>> https://github.com/guardian/windsock/blob/master/src/main/resources/public/elements/windsock-admin.js#L5 >>>>>>> (ensure windsock-data Polymer element is defined before >>>>>>> windsock-admin, because admin uses data) >>>>>>> >>>>>>> which unfortunately has to mirror the corresponding HTML dependency: >>>>>>> >>>>>>> >>>>>>> https://github.com/guardian/windsock/blob/master/src/main/resources/public/elements/windsock-admin.html#L2 >>>>>>> >>>>>>> This is rather annoying, but I wasn't able to find a way around it, >>>>>>> seeing as mixing HTMLImport and SystemJS results in a mix of sync and >>>>>>> async >>>>>>> dependencies, while Polymer requires a strict order for elements to be >>>>>>> defined (AFAIU)... >>>>>>> >>>>>>> >>>>>>> Another challenge was the bundling of elements for leaner >>>>>>> distribution. Vulcanize is aware of static <script>s, but not >>>>>>> System.import >>>>>>> calls (or require() calls if using RequireJS), so no JS is pulled into >>>>>>> the >>>>>>> vulcanized output. On the other hand, jspm bundle is quite happy to >>>>>>> bundle >>>>>>> JS modules into one, but it obviously doesn't know about HTML imports. >>>>>>> >>>>>>> My extremely hacky (but oddly functional) solution comes in the form >>>>>>> of a build script that combines vulcanize and jspm bundle, prepending >>>>>>> the >>>>>>> SystemJS bundle to the vulcanize output: >>>>>>> >>>>>>> >>>>>>> https://github.com/guardian/windsock/blob/master/src/main/resources/public/make-dist.sh >>>>>>> >>>>>>> Some of the hackery, esp the hack around the AMD define at the >>>>>>> bottom, should hopefully go away as fixes are incorporated into SystemJS >>>>>>> instead. >>>>>>> >>>>>>> It's all still a bit rough, but I hope it proves it can all be done, >>>>>>> albeit slightly more painfully than it ought to be... >>>>>>> >>>>>>> >>>>>>> Any insight or ideas for making this all better natively supported >>>>>>> would be very much welcome. I know there are discussions about >>>>>>> HTMLImport >>>>>>> vs System loader on es-discuss at the moment, but it'd be great to start >>>>>>> thinking of ways to get all of this working together without extra >>>>>>> hassle! >>>>>>> >>>>>>> Thanks for all the great work on Polymer! >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Sébastien Cevey >>>>>>> The Guardian / Software Developer >>>>>>> >>>>>>> >>>>>>> On 20 August 2014 08:49, <[email protected]> wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> is there any progress related to this topic? >>>>>>>> >>>>>>>> BR, >>>>>>>> Alessandro >>>>>>>> >>>>>>>> >>>>>>>> On Wednesday, February 26, 2014 10:09:55 AM UTC+2, Eric Bidelman >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Scott, don't you have a new HTML import + JS module loader POC or >>>>>>>>> brain dump somewhere? Am I making that up? >>>>>>>>> On Feb 25, 2014 4:21 PM, "Gabriel Gartz" <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> I like the idea of using requirejs and polymer project >>>>>>>>>> together, some points: >>>>>>>>>> >>>>>>>>>> * Requirejs system migration: you just can't re-develop >>>>>>>>>> everything to work with only polymer from one day to another. >>>>>>>>>> * Using logical libs for a custom element: Some custom elements >>>>>>>>>> can be very complex, using the require js allow you to easier coding >>>>>>>>>> with >>>>>>>>>> namespace and modules dependence. >>>>>>>>>> >>>>>>>>>> Other points, it's possible to create a Custom Element to trigger >>>>>>>>>> and manipulate requirejs, but you need to load polymer project >>>>>>>>>> before the >>>>>>>>>> requirejs. >>>>>>>>>> And finally the problem with requirejs loading before polymer >>>>>>>>>> project it's in the way that requirejs create and use script >>>>>>>>>> elements to >>>>>>>>>> append on the head from the DOM, where the ShadowDOM from Polymer >>>>>>>>>> decorate >>>>>>>>>> the elements and if isn't decorated it throw a assert exception, so >>>>>>>>>> if >>>>>>>>>> require is loaded before to load polymer it wont work. >>>>>>>>>> >>>>>>>>>> Em quinta-feira, 25 de julho de 2013 09h26min45s UTC-3, Joern >>>>>>>>>> Turner escreveu: >>>>>>>>>>> >>>>>>>>>>> sorry, if that's a recurring question having answered elsewhere >>>>>>>>>>> already. After searching the discussions i only found some remarks >>>>>>>>>>> on that >>>>>>>>>>> but no defnitive answer. >>>>>>>>>>> >>>>>>>>>>> We're also very interested to load polymer with requirejs or at >>>>>>>>>>> least use them in conjunction. Anybody found a solution to that? Any >>>>>>>>>>> pragmatic approach would be welcome. >>>>>>>>>>> >>>>>>>>>>> Second: after reading for a while i haven't found answers to the >>>>>>>>>>> questions what polymer does to the global objects (window, document >>>>>>>>>>> ...) >>>>>>>>>>> and how/if it changes the javascript language. >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> >>>>>>>>>>> Joern >>>>>>>>>>> >>>>>>>>>> Follow Polymer on Google+: plus.google.com/107187849809354688692 >>>>>>>>>> --- >>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>> Google Groups "Polymer" group. >>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>>> send an email to [email protected]. >>>>>>>>>> >>>>>>>>>> To view this discussion on the web visit >>>>>>>>>> https://groups.google.com/d/msgid/polymer-dev/ca2cc747- >>>>>>>>>> 8c1e-476e-8f9d-774f622a9ebb%40googlegroups.com. >>>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>>>>>> >>>>>>>>> Follow Polymer on Google+: plus.google.com/107187849809354688692 >>>>>>>> --- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "Polymer" group. >>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>> send an email to [email protected]. >>>>>>>> To view this discussion on the web visit >>>>>>>> https://groups.google.com/d/msgid/polymer-dev/5d9ab14d-8f23-4708-a387-e7cf67326823%40googlegroups.com >>>>>>>> <https://groups.google.com/d/msgid/polymer-dev/5d9ab14d-8f23-4708-a387-e7cf67326823%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>> . >>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> ------------------------------ >>>>>>> Visit theguardian.com. On your mobile and tablet, download the >>>>>>> Guardian iPhone and Android apps theguardian.com/guardianapp and >>>>>>> our tablet editions theguardian.com/editions. Save up to 57% by >>>>>>> subscribing to the Guardian and Observer - choose the papers you want >>>>>>> and >>>>>>> get full digital access. Visit subscribe.theguardian.com >>>>>>> >>>>>>> This e-mail and all attachments are confidential and may also be >>>>>>> privileged. If you are not the named recipient, please notify the >>>>>>> sender and delete the e-mail and all attachments immediately. Do not >>>>>>> disclose the contents to another person. You may not use the information >>>>>>> for any purpose, or store, or copy, it in any way. Guardian News & >>>>>>> Media >>>>>>> Limited is not liable for any computer viruses or other material >>>>>>> transmitted with or as part of this e-mail. You should employ virus >>>>>>> checking software. >>>>>>> >>>>>>> Guardian News & Media Limited is a member of Guardian Media Group >>>>>>> plc. Registered Office: PO Box 68164, Kings Place, 90 York >>>>>>> Way, London, N1P 2AP. Registered in England Number 908396 >>>>>>> >>>>>>> >>>>>>> Follow Polymer on Google+: plus.google.com/107187849809354688692 >>>>>>> --- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Polymer" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected]. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/polymer-dev/CALft9sTqmi_ichzKCtD%3DZn%3Dv-cukEGpSgPC-v-yVHLgcK2Tqyw%40mail.gmail.com >>>>>>> <https://groups.google.com/d/msgid/polymer-dev/CALft9sTqmi_ichzKCtD%3DZn%3Dv-cukEGpSgPC-v-yVHLgcK2Tqyw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>>>>> Follow Polymer on Google+: plus.google.com/107187849809354688692 >>>>>> --- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Polymer" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/polymer-dev/CA%2BrMWZgN-GaRS1sMue%2BEyZq-%3DutmLbwXNQxW4txNNJBKYn_pmg%40mail.gmail.com >>>>>> <https://groups.google.com/d/msgid/polymer-dev/CA%2BrMWZgN-GaRS1sMue%2BEyZq-%3DutmLbwXNQxW4txNNJBKYn_pmg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> >>>> >>> >>> >>> -- >>> Sébastien Cevey >>> Software Developer >>> >>> ------------------------------ >>> Visit theguardian.com. On your mobile and tablet, download the Guardian >>> iPhone and Android apps theguardian.com/guardianapp and our tablet >>> editions theguardian.com/editions. Save up to 57% by subscribing to >>> the Guardian and Observer - choose the papers you want and get full digital >>> access. Visit subscribe.theguardian.com >>> >>> This e-mail and all attachments are confidential and may also be >>> privileged. If you are not the named recipient, please notify the >>> sender and delete the e-mail and all attachments immediately. Do not >>> disclose the contents to another person. You may not use the information >>> for any purpose, or store, or copy, it in any way. Guardian News & Media >>> Limited is not liable for any computer viruses or other material >>> transmitted with or as part of this e-mail. You should employ virus >>> checking software. >>> >>> Guardian News & Media Limited is a member of Guardian Media Group plc. >>> Registered >>> Office: PO Box 68164, Kings Place, 90 York Way, London, N1P 2AP. Registered >>> in England Number 908396 >>> >>> >>> >> Follow Polymer on Google+: plus.google.com/107187849809354688692 >> --- >> You received this message because you are subscribed to the Google Groups >> "Polymer" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/polymer-dev/CAGu7HE%3DfiaW0cy2xybvFvr5JkEzFu_-LfhSsSb9ofDX6K3ck5Q%40mail.gmail.com >> <https://groups.google.com/d/msgid/polymer-dev/CAGu7HE%3DfiaW0cy2xybvFvr5JkEzFu_-LfhSsSb9ofDX6K3ck5Q%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > Follow Polymer on Google+: plus.google.com/107187849809354688692 --- You received this message because you are subscribed to the Google Groups "Polymer" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/polymer-dev/CAGu7HEmeadJVQnbgar_BBkPf752rKcE0CQzWV64THN8XHbZyOg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
