Maszynopis zarządzania pakietami

głosy
14

Wygląda maszynopis ma ładny system modułowy, to jednak nie zastąpi potrzebę czegoś podobnego requirejs? Innymi słowy, gdy „kompilacji” pakiet maszynopis ma obsługiwać wszystkie uchwały o zależnościach dla ciebie? Przykłady będą mile widziane!

Utwórz 03/10/2012 o 19:58
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
16

Maszynopis nie posiada ładowacz modułu wykonawczego. Nadal będą musiały zapewnić ładowarka moduł używać w czasie wykonywania, np wymagać js. Maszynopis obsługuje generowanie kodu JavaScript kompatybilne z obu commonJS (dla node.js skrypty) oraz ładowarki AMD (np requireJS). Aby określić, który z nich korzystać podanie w „--module” przełącznik do kompilatora albo z „amd” lub „commonjs”.

Oto w jaki sposób wyeksportować moduł w maszynopisie:

export module depModule { 
    export class A { 
    }
}

i tu jest wygenerowany kod JavaScript z --module przełącznika amd:

define(["require", "exports"], function(require, exports) {
    (function (depModule) {
        var A = (function () {
            function A() { }
            return A;
        })();
        depModule.A = A;
    })(exports.depModule || (exports.depModule = {}));
})
Odpowiedział 03/10/2012 o 20:07
źródło użytkownik

głosy
3

Maszynopis może emitować kod, który będzie działał zarówno AMD zgodnych ładowarek zależność jak requirejs lub commonjs środowiskach, takich jak węzeł. Można kontrolować to z --module opcji do kompilatora. Sam kompilator nie obsługuje rozdzielczość zależność w czasie wykonywania, że ​​to do ciebie do pracy, ale robi zależności próba rozwiązywaniu podczas kompilacji więc może dać wpisywania informacji.

Można zobaczyć przykłady projektów, które wykorzystują moduły w katalogu testów na CodePlex, ten na przykład. Wyjście kompilacji tych projektów badawczych są .js że będzie obciążana albo, na przykład, requirejs (jeśli przejdą --module AMD) lub węzeł (jeśli przejdą --module commonjs).

Odpowiedział 03/10/2012 o 20:11
źródło użytkownik

głosy
2

Jeśli aplikacja będzie się składać wyłącznie przez moduły maszynopis / plików możliwe jest, aby nie używać ładowarki modułu lub inny zarządzania zależność. Trzeba będzie obejmować wszystkie zależności z odniesieniami komentarz i użyć --out opcję kompilatora. Na przykład:

tsc --out compiled.js app.ts

Będzie to umieścić w compiled.js generowanych js dla app.ts i wszystkich jego zależności, w tym zależności od zależności. Plik wynikowy może być zawarte bezpośrednio w pliku html z tagu skryptu. Może być również minified. Moduł ładowania na starcie nie jest obsługiwany

Odpowiedział 04/10/2012 o 19:46
źródło użytkownik

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