Przekształcenie maszynopis w JavaScripcie

głosy
17

Zastanawiam się, jak to możliwe, aby przekształcić maszynopis do JavaScriptu w wieloplatformowym sposób. Jestem świadomy o dostępności węzła menedżera pakietów na maszynie , ale czy są jakieś inne alternatywy, które mogą być używane po stronie serwera?

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


9 odpowiedzi

głosy
25

Kompilator maszynopis jest zbudowany na maszynie, a więc jest dostępny w postaci pliku (JS tsc.js), które mogą być uruchamiane za pomocą tylko o VM lub JS realizacji ES3-compiliant.

Powiedział, że obecna infrastruktura kompilatora jest plik I / O obsługuje tylko Node oraz Windows Scripting Host API plików. Jeśli chcesz polecić wsparcie dla innego środowiska, zachęcamy do skontaktowania się z zespołem na naszej stronie github (dawniej CodePlex )

Odpowiedział 01/10/2012 o 19:36
źródło użytkownik

głosy
12

Może to nie jest odpowiedź chcesz, ale jak wszyscy wspomniano, kompilator jest plik JS, więc opcje są opcje wykonywania pliku JS.

W systemie Windows, są 2 oczywistych, węzła i Windows Script Host.

Wiesz już o węźle, druga opcja jest komponentem, który przychodzi ze wszystkimi wersjami Windows (myślę), można zrobić to tak:

cscript path/to/tsc.js source-file.ts

można zobaczyć wszystkie opcje kompilatora po prostu:

cscript path/to/tsc.js

W systemie Linux Zakładam, powinieneś być w stanie wykorzystać (oprócz węzła):

  • V8 samodzielna powłoka, wymienić nodelub cscriptzv8-shell
  • ExecJS https://github.com/sstephenson/execjs
  • Każdy inny biegacz JS dostępny na wybranej platformie (inna odpowiedź wspomniano Rhino na przykład)

Aktualizacja: Kolejna odpowiedź sugeruje kompilator API jest kompatybilny tylko z węzła i Windows Script Host (cscript Tool), więc, jeśli poprawna, a następnie na Linuksie musisz Node skompilować maszynopis.

Jeśli szukasz czegoś podobnego apt get tsc(lub cokolwiek zarządcy pakietów Linux / Mac są podobne), myślę, że nie ma.

Pamiętam, że czytałem gdzieś, że I / O jest zoptymalizowany dla węzła i Windows Script Host, więc jeśli masz problemy z opcji, będziesz prawdopodobnie skończyć z węzła, jeśli szukają niezależność platformy.

Aktualizacja: Kolejna odpowiedź tutaj potwierdza to samo o kompatybilności.

Odpowiedział 03/10/2012 o 04:23
źródło użytkownik

głosy
5

Konkretnie, na serwerze (przy założeniu, że serwer ma node.js jest dostępny), to wystarczy uruchomić:

node path/to/tsc.js yourFile1.ts yourFile2.ts [etc]

można uruchomić tego polecenia bez nazw plików wejściowych, aby zobaczyć pomoc wiersza polecenia dla tsc.js.

Odpowiedział 01/10/2012 o 23:39
źródło użytkownik

głosy
3

Mam projekt, który kompiluje maszynopis do JavaScript w Javie:

https://github.com/martypitt/typescript4j

Jak wspomniano w innych odpowiedzi, to sprawia, że korzystanie z Rhino, więc nie ma zależności na npmlub node.

Oto przykład:

// Instantiate the compiler:
TypescriptCompiler compiler = new TypescriptCompiler();

// Compile a string:
String output = compiler.compile("class Greeter { greeting: string; }");

// Or, compile and output to a file:
compiler.compile(new File("example.ts"), new File('output.js'));

Używam go w innym projekcie - „” Bakehouse wykonać kompilację on-the-fly maszynopisu zasobów w środowiskach Wiosna

Odpowiedział 17/01/2013 o 08:35
źródło użytkownik

głosy
3

Jeśli to jest Java, że ​​trzeba kierować następnie można uruchomić tsc.js z silnikiem Rhino jako część procesu kompilacji.

Odpowiedział 02/10/2012 o 12:34
źródło użytkownik

głosy
2

Skompilować TS -> JS: węzeł jest dostępna dla wszystkich popularnych platform, więc nie rozumiem, dlaczego chcesz chcą mieć tsc.java gdy masz już tsc.js. Instalacja węzeł nie jest wielkim problemem. W rzeczywistości, jest to łatwiejsze niż Java.

Gdy masz plik proj.js można następnie skopiować go do których kiedykolwiek wdrożenie platformy chcesz używać.

Z mojego punktu widzenia, JavaScript - a dokładniej ECMAScript jest alternatywą dla Javy. Więc jestem szczęśliwy, że nie muszę się użerać JVM itp korzystania z narzędzia. Ale jeśli wolisz Java, to dlaczego nawet przeszkadzało z JS?

Odpowiedział 02/10/2012 o 01:12
źródło użytkownik

głosy
1

I już zostały gry z tego, a może skompilować maszynopis z javascript z następującego kodu:

<script src=typescript.js></script>

<script>

var scriptText = ""
        + "/// <reference path=\"test.ts\"/>" + "\r\n"
        + "class Car {"
        + "     constructor (private name: string) { } "
        + "     getName() { "
        + "         var juice = new Juice();"
        + "         return name; "
        + "     } "
        + "} "
        + "var car = new Car('Subaru Impreza');"
        + "console.log(car.getName());";





var TextWriter = function () { };

TextWriter.prototype = {
collected: '',

Write: function (sc) {
    this.collected += sc;
},
WriteLine: function(sc) {
    this.collected += sc + '\n';
},
toString: function() {
    return this.collected;
}
};

var output = new TextWriter();
var tsc = new TypeScript.TypeScriptCompiler(output);

var script = tsc.addUnit(scriptText, "");

tsc.emit();

console.log(output.toString());

</script>

Nie jest to jednak idealne. Próbuję dostać coś działa, więc mogę przekonwertować maszynopis do JS wewnątrz C # .NET (przy użyciu JavaScript), ale jestem coraz przepełnienie stosu na wezwanie ts.addUnit.

Odpowiedział 02/10/2012 o 18:48
źródło użytkownik

głosy
0

To jest to, co pracował dla mnie:

Po pierwsze, zainstalowany typescript moduł węzła >> npm install -g typescript. Daje to narzędzie wiersza poleceń tsc.

Kolejny, tsc gulpfile.ts gulp-config.ts typings/tsd.d.ts

  • to będzie i pliki i . Dostarczamy plik jako punkt odniesienia dla prawidłowego transpilation. transpilegulpfile.tsgulp-config.tsgulpfile.jsgulp-config.jstypings/tsd.d.ts
  • typescript Moduł węzeł obejmuje wiele opcji >> tsc -hokreślić katalog docelowy lub plik, itd .

Mam nadzieję że to pomoże.

Odpowiedział 23/05/2016 o 04:47
źródło użytkownik

głosy
0

SublimeText2 trick można transpile maszynopis do javascript bezpośrednio od SublimeText2 (trzeba węzeł):

Utwórz Typescript.sublime-buildplik /Sublime Text 2/Packages/Usero tej treści:

{
"cmd": ["tsc", "$file"],
"selector" : "source.ts",
"path": "/usr/local/bin:$PATH"
}

Następnie, teraz można transpile kod z Ctrl + B lub Cmd + B

Odpowiedział 02/10/2012 o 07: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