Hogyan határozzák függő modulok géppel AMD modulok

szavazat
6

Hogyan határozzák meg a függő modulok egy AMD modul géppel, beleértve például, jQuery és aláhúzás. A JavaScript én például így:

define('moduleA',
    ['jquery', 'underscore'], function ($, _) {
    }
});

Hogyan lehet ezt úgy, hogy géppel fordító generálja ezt a kódot.

A kérdést 08/10/2012 14:44
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
3

A jelenlegi végrehajtása a fordító (0,8) a módja annak, hogy elérjük azt, amit keres a következő.

test.ts:

import jquery = module("jquery");
import underscore = module("underscore");

export module A {
    console.log(jquery.$ + underscore._);
}

jquery.ts:

export var $ = null;

underscore.ts:

export var _ = null;

Ha összeállításához test.ts modul használatával kapcsoló:

tsc --module AMD test.ts

generál a következő JS fájlt az Ön számára:

define(["require", "exports", "jquery", "underscore"], function(require, exports, __jquery__, __underscore__) {
    var jquery = __jquery__;
    var underscore = __underscore__;
    (function (A) {
        console.log(jquery.$ + underscore._);
    })(exports.A || (exports.A = {}));
})

Vegye figyelembe, hogy ha tesz import nyilatkozatok a modulban azt megjegyezni CODEGEN rendesen egy hiba miatt. A csapat jelenleg is dolgozik egy fix a szóban forgó tétel, de remélhetőleg nem kell blokk van.

Válaszolt 08/10/2012 17:22
a forrás felhasználó

szavazat
2

Ez jelenleg nem működik rendesen géppel egy hiba miatt a fordító (lásd StackOverflow ). Mit kellene tennie, hogy meghatározza a modul moduleA, hogy az import jqueryés underscore, majd fordítsd, hogy a -module amd. Alapvetően, ha szüksége lenne az alábbi három fájlt:

moduleA.ts

export module moduleA {
    import jquery = module("jquery");
    import underscore = module("underscore");
    console.log(jquery.jquery);
    console.log(underscore.underscore);
}

jquery.ts

export module jquery {
    var jquery = "jquery";
}

underscore.ts

export module underscore {
    var underscore = "underscore";
}

Összeállítása e három fájlok tsc -module amdhozamok az alábbi kódot moduleA.js:

define(["require", "exports"], function(require, exports) {
    (function (moduleA) {
        var jquery = __jquery__;

        var underscore = __underscore__;

        console.log(jquery.jquery);
        console.log(underscore.underscore);
    })(exports.moduleA || (exports.moduleA = {}));

})

Mint azt fentebb már említettük, egy hiba miatt a fordító, ez a kód valójában helytelen, és panaszkodni fog hiányzik __jquery__a futás során. Azonban, ha ez a hiba javítását a amdrakodó a node.jsképesnek kell lennie arra, hogy betölti a modulokat.

Válaszolt 08/10/2012 15:05
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more