sorry, copy, paste-error

... use JavaScriptModuleConfiguration#exports() for 'exports' of shim config

2015-02-18 14:58 GMT+01:00 Diego Socaceti <socac...@gmail.com>:

> Hi @all,
>
> if you want to shim non-AMD JavaScript files you should use
> JavaScriptModuleConfiguration.
> It offers everything you need to create shim configs.
>
> use JavaScriptModuleConfiguration#dependsOn() for 'deps' of shim config
> use JavaScriptModuleConfiguration#dependsOn() for 'exports' of shim config
>
> Kind regards
>
>
> 2015-02-18 12:13 GMT+01:00 Geoff Callender <
> geoff.callender.jumpst...@gmail.com>:
>
>> Despite what I said 9 months ago in the thread you referenced, I'm not
>> sure that I've ever seen the shimming [1] ever work, but I haven't pursued
>> it because the many javascript libraries I use work fine anyway without
>> being modules.
>>
>> [1]
>> http://tapestry.apache.org/5.4/apidocs/org/apache/tapestry5/services/javascript/JavaScriptModuleConfiguration.html
>>
>> Here are 4 very different examples that my modules are using without, I
>> believe, shimming. Maybe they're being shimmed and I should take advantage
>> of it. If so, I'd welcome someone setting me straight.
>>
>>         public static void contributeModuleManager(
>>                         MappedConfiguration<String, Object> configuration,
>>
>> @Path("/META-INF/assets/js/highcharts-4.0.4/highcharts.js") Resource
>> highcharts,
>>
>> @Path("/META-INF/assets/fineuploader/fineuploader-5.0.9.js") Resource
>> fineuploader,
>>
>> @Path("/META-INF/assets/js/fastclick-1.0.3.min.js") Resource fastclick,
>>
>> @Path("/META-INF/assets/js/pick-a-color-1.2.3/dependencies/tinycolor-0.9.15.min.js")
>> Resource tinycolor,
>> ) {
>>                 configuration.add("highcharts", new
>> JavaScriptModuleConfiguration(highcharts));
>>                 configuration.add("fineuploader", new
>> JavaScriptModuleConfiguration(fineuploader));
>>                 configuration.add("fastclick", new
>> JavaScriptModuleConfiguration(fastclick));
>>                 configuration.add("tinycolor", new
>> JavaScriptModuleConfiguration(tinycolor));
>>         }
>>
>> Using highcharts...
>>
>> define([ "jquery", "highcharts" ], function($) {
>>         init = function(params) {
>>                 $chart = $("#" + params.id);
>>                 $chart.highcharts({
>>                         :
>>
>> Using fineuploader...
>>
>> define(["jquery", "t5/core/console", "fineuploader"], function($,
>> console) {
>>         var uploader;
>>         init = function(params) {
>>                 uploader = new qq.FineUploader({
>>                         :
>>
>> Using fastclick...
>>
>> define([ "jquery", "fastclick" ], function($, FastClick) {
>>         return function(options) {
>>                 var options = options || {};
>>                 new FastClick(document.body, options);
>>         };
>> });
>>
>> Using tinycolor...
>>
>> // Depends on PickAColorJavaScriptStack.
>>
>> define(["jquery", "tinycolor", "underscore", "t5/core/console",
>> "bootstrap/tooltip", "bootstrap/popover"], function($, tinycolor, _,
>> console) {
>>         init = function(params) {
>>                 pickAColorOptions = _.extend({},
>> params.pickAColorOptions);
>>                 // To prevent pickAColor failing with "tinycolor is not
>> defined", assign window.tinycolor.
>>                 window.tinycolor = tinycolor;
>>                 :
>>
>> HTH,
>>
>> Geoff
>>
>>
>> On 18 Feb 2015, at 5:54 pm, abangkis <abang...@gmail.com> wrote:
>>
>> > Hi  Geoff. You are right. I can call the showMe() method as a global
>> > function. So, is it okay if I assume that i could only call the shimmed
>> js
>> > lib through global function?  Since it wouldn't get passed through the
>> > define parameter. Or is my implementation that's incorrect? Is there a
>> > better way (better scoped) to implement this?
>> >
>> > Cheers.
>> >
>> > On Wed, Feb 18, 2015 at 7:33 AM, Geoff Callender <
>> > geoff.callender.jumpst...@gmail.com> wrote:
>> >
>> >> Your "require" has ensured the mytest.js file gets loaded by the
>> browser
>> >> but the file's contents do not define an AMD module. Therefore the
>> scope of
>> >> showMe() is global, so I think you'll find you can call showMe() but
>> not
>> >> mytest.showMe().
>> >>
>> >> Geoff
>> >>
>> >> On 18 Feb 2015, at 5:05 am, Thiago H de Paula Figueiredo <
>> >> thiag...@gmail.com> wrote:
>> >>
>> >>> Please read the Require.js documentation about this. You just cannot
>> use
>> >> Require.js with non AMD .js files and expect it to work without no
>> further
>> >> work.
>> >>>
>> >>> On Sat, 14 Feb 2015 14:04:36 -0200, abangkis <abang...@gmail.com>
>> wrote:
>> >>>
>> >>>> Hello. I'm trying to load a simple regular javascript that's going
>> to be
>> >>>> used as dependency from a RequireJS module.
>> >>>>
>> >>>> So i created mytest.js under classpath:META-INF/assets/js/mytest.js.
>> It
>> >>>> contain a single function :
>> >>>>
>> >>>> function showMe() {
>> >>>> alert("test 2  my_test");
>> >>>> };
>> >>>>
>> >>>> I add the contribution in AppModule
>> >>>>
>> >>>>   public static void
>> >> contributeModuleManager(MappedConfiguration<String,
>> >>>> Object> configuration,
>> >>>>           @Path("/META-INF/assets/js/mytest.js") Resource js) {
>> >>>>       configuration.add("mytest", new
>> >> JavaScriptModuleConfiguration(js));
>> >>>>   }
>> >>>>
>> >>>> Create a test page
>> >>>>
>> >>>> @Import(module = "Lima")
>> >>>> public class Lima {
>> >>>> }
>> >>>>
>> >>>> that call the module :
>> >>>>
>> >>>> require(['mytest'],
>> >>>> function(mytest){
>> >>>> console.log("mytest " + mytest);
>> >>>> mytest.showMe();
>> >>>> });
>> >>>>
>> >>>> the module is loaded, the mytest.js file is found. But the console
>> log
>> >>>> mytest as undefined. Here's what's printed on the console
>> >>>>
>> >>>> Loading 2 libraries
>> >>>> console.js:104 Loading library
>> >>>> /KomuttaCentral/assets/ctx/z1d218c13/js/jquery-2.0.3.min.js
>> >>>> console.js:104 Loading library
>> >>>> /KomuttaCentral/assets/ctx/z50c3674f/js/scripts.js
>> >>>> console.js:104 Executing 1 inits
>> >>>> console.js:104 Loaded module Lima
>> >>>> console.js:104 All inits executed
>> >>>> Lima.js:3 mytest undefined
>> >>>> console.js:104 RequireJS error: require: Cannot read property
>> 'showMe'
>> >> of
>> >>>> undefined
>> >>>>
>> >>>> So, what did i do wrong? Thanks.
>> >>>
>> >>>
>> >>> --
>> >>> Thiago H. de Paula Figueiredo
>> >>> Tapestry, Java and Hibernate consultant and developer
>> >>> http://machina.com.br
>> >>>
>> >>> ---------------------------------------------------------------------
>> >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> >>> For additional commands, e-mail: users-h...@tapestry.apache.org
>> >>
>> >>
>> >
>> >
>> > --
>> > http://www.mreunionlabs.net/ <http://www.mreunion-labs.net/>
>> > twitter : @mreunionlabs @abangkis
>> > page : https://plus.google.com/104168782385184990771
>>
>>
>

Reply via email to