AMD a CommonJS (resp. require.js a browserify.js) rubrika: Programování: JavaScript

4 84mmdd
položil/-a 27.11.2014

Ahoj,
chystam se pouzivat browserify.js a rikal jsem si, jak resit runtime includy.
Problem je, ze Browserify pouziva CommonJS specifikaci pro tvorbu modulu, tzn. to co pouziva node/npm:

var foo = require('jine_foo');
 
module.exports = {...};

Smyslem Browserify je sbalit vsechny requires do jednoho bundlu/souboru, ktery includnu jednim <script src="...">... .
V tom bundlu ale urcite nechci napriklad locale soubory pro vsechny jazyky. Chci stahnout az za behu jen ten locale co me zajima.

Jenze to za behu znamena, ze uz nejde pouzit Browserify, ale async. includy pres treba require.js, ktera ale vyzaduje format modulu v AMD specifikaci:

define(['jquery','underscore','backbone'],function ($, _, BackBone){
    //code goes here
});

Jak to resite? Napada me jen holt vsechno psat v CommonJS, smirit se s urcitou redundanci kodu v tom bundlu a doufat, ze runtime budu chtit stahovat jenom ty lokalizace, ktere budou jen JSON a natahnu je cistym ajaxem?

EDIT: preformulovano

Komentáře

  • skliblatik : Nedělal jsem, neponořil jsem se do toho dostatečně, ale narazil jsem na článek http://esa-matti.suuronen.org/blog/2013/04/15/asynchronous-module-loadin... Jestli je to mimo, tak se omlouvám. 28.11.2014
  • 84mmdd : Diky, mrknu na to. Na prvni pohled mi neni jasny, jestli to nejak resi nejaky wrapper kolem toho CommonJS tvaru (v prohlizeci nebude module.export), zkusim hned jak se k tomu dostanu. 28.11.2014

Pro plný přístup na Devel.cz se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.