Very good question. It's trying to lazy load from the local context. So far
I've managed to sidestep modules that do that. I'll have a look into it.
On 23 Mar 2015, at 5:56 pm, Rural Hunter <ruralhun...@gmail.com> wrote:
> Hi Geoff,
>
> Thanks so much for the detailed guide. My module A is AMD-compliant and has
> no css files. I tried your solution in AppModule. It did resolved the
> problem for A.js itself. But the A.js depends on many files in it's sub
> directories. I checke the source of A.js and it's like this:
> require('./dep/excanvas');
> var util = require('./tool/util');
> var log = require('./tool/log');
> var guid = require('./tool/guid');
>
> I got 404 for all the access to those dependencies. How to solve this?
>
>
> 2015-03-23 10:56 GMT+08:00 Geoff Callender <
> geoff.callender.jumpst...@gmail.com>:
>
>> Let's say "a" and its associated files are in a folder called a-1.0.0. Try
>> dropping the folder into META-INF/assets and shim it by contributing to
>> ModuleManager:
>>
>> public static void contributeModuleManager(
>> MappedConfiguration<String, Object> configuration,
>> @Path("/META-INF/assets/a-1.0.0/a.js") Resource a,
>> ...)
>>
>> configuration.add("a", new
>> JavaScriptModuleConfiguration(a).dependsOn("whatever"));
>> ...
>> }
>>
>> Now you can refer to it as module "a". If a.js was already an
>> AMD-compliant module, that's fine, RequireJS will figure handle it. If a.js
>> already does *require("whatever")* then you can leave out the
>> .dependsOn("whatever") shown above.
>>
>> If it has css files, you might like to put them in a JavaScriptStack so
>> that their path is kept in one place.
>>
>> public class ASupportStack implements JavaScriptStack {
>>
>> private final AssetSource assetSource;
>>
>> public ASupportStack(final AssetSource assetSource) {
>> this.assetSource = assetSource;
>> }
>>
>> public String getInitialization() {
>> return null;
>> }
>>
>> public List<Asset> getJavaScriptLibraries() {
>> List<Asset> ret = new ArrayList<>();
>> return ret;
>> }
>>
>> public List<StylesheetLink> getStylesheets() {
>> List<StylesheetLink> ret = new ArrayList<>();
>>
>> ret.add(new StylesheetLink(assetSource
>>
>> .getClasspathAsset("/META-INF/assets/a-1.0.0/a.css")));
>> ret.add(new StylesheetLink(assetSource
>>
>> .getClasspathAsset("/META-INF/assets/a-1.0.0/a.print.css"),
>> new StylesheetOptions("print")));
>>
>> return ret;
>> }
>>
>> public List<String> getStacks() {
>> return Collections.emptyList();
>> }
>>
>> @Override
>> public List<String> getModules() {
>> return Collections.emptyList();
>> }
>>
>> }
>>
>> In AppModule:
>>
>> public static void
>> contributeJavaScriptStackSource(MappedConfiguration<String,
>> JavaScriptStack> configuration) {
>> configuration.addInstance("ASupportStack",
>> ASupportStack.class);
>> }
>>
>> In each page or component that uses module "a", either @Import the
>> stylesheets or @Import the JavaScriptStack. I wish there was a way that
>> would import it for you every time refer to module "a" but I don't know of
>> one.
>>
>> I hope this is helping.
>>
>> Geoff
>>
>> On 23 Mar 2015, at 1:06 pm, Rural Hunter <ruralhun...@gmail.com> wrote:
>>
>>> I already did that. The problem is this: I have a 3rd party module A.
>> Both
>>> my own code and another 3rd party module B depend on it. The standard
>>> location of module A should be at classpath:META-INF/modules/ but it
>> brings
>>> in a lot of js files and sub-folders and makes the module root path(
>>> classpath:META-INF/modules) a bit messy. So I want to put module A at
>>> classpath:META-INF/modules/A. How can I achieve it?
>>>
>>> 2015-03-22 18:39 GMT+08:00 Chris Poulsen <mailingl...@nesluop.dk>:
>>>
>>>> Drop the 3rd party module in the usual place for modules
>>>> (classpath:META-INF/modules) and reference it.
>>>>
>>>> http://tapestry.apache.org/javascript-rewrite.html has some info on the
>>>> infrastructure and the tapestry source code (setup of the core
>>>> stack/bootstrap modules etc. are good inspiration as well),
>>>>
>>>>
>>>>
>>>>
>>>> On Sat, Mar 21, 2015 at 4:19 PM, Rural Hunter <ruralhun...@gmail.com>
>>>> wrote:
>>>>
>>>>> How to work out if I want to config the path of a third-party module
>> if I
>>>>> use js stack?
>>>>>
>>>>> 2015-03-20 17:07 GMT+08:00 Chris Poulsen <mailingl...@nesluop.dk>:
>>>>>
>>>>>> In a javascript stack?
>>>>>>
>>>>>> On Fri, Mar 20, 2015 at 4:05 AM, Rural Hunter <ruralhun...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I'm testing tapestry 5.4. I'm wondering where to put the
>>>>> requirejs.config
>>>>>>> code for my own modules and third-party modules?
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org