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