Oh nice! Yeah that would be really helpful.

On 12 September 2014 16:46, 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
>>
>>
>>
>


-- 
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/CALft9sSxnsC%2BHBNwqkVt2PbuME1cYaKr4mYb1i6iHJVNW5Gm1Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to