Используйте машинопись компилятор из узла

голоса
10

Это довольно легко сделать это с помощью кофе-скрипта.

var coffee = require('coffee-script');
coffee.compile(a = 1);
//=> '(function() {\n  var a;\n\n  a = 1;\n\n}).call(this);\n'

Есть ли способ сделать это с помощью машинописи?

Edit: также размещена на CodePlex

Задан 04/10/2012 в 15:39
источник пользователем
На других языках...                            


6 ответов

голоса
9

Кажется, что в настоящее время существует более простое решение, вы можете сделать:

let ts = require('typescript');
let source = ts.transpileModule('class Test {}', {}).outputText;

Это приводит к следующему:

"use strict";
var Test = (function () {
    function Test() {
    }
    return Test;
}());
Ответил 04/12/2015 в 12:49
источник пользователем

голоса
8

лучше требовать может помочь вам достичь этого.

Это позволяет требовать () Машинопись файлы - не требуется никакой предварительной компиляции - и куча других форматов (CoffeeScript, clojurescript, YAML, XML и т.д.)

require('better-require')();
var myModule = require('./mymodule.ts');

Раскрытие информации: я написал лучше требовать.

Ответил 01/11/2012 в 15:55
источник пользователем

голоса
8

Поскольку модуль НПМ машинопись в не экспортировать любой открытый интерфейс, единственный способ сделать это в настоящее время для выполнения tscпроцесса.

var exec = require('child_process').exec;

var child = exec('tsc main.ts',
                function(error, stdout, stderr) {
                    console.log('stdout: ' + stdout);
                    console.log('stderr: ' + stderr);
                    if (error !== null) {
                      console.log('exec error: ' + error);
                    }
                });

Вопрос был открыт для запроса общедоступного интерфейса для модуля машинописи .

Ответил 04/10/2012 в 16:16
источник пользователем

голоса
6

Проверить этот GitHub проект по niutech, он может конвертировать код транскрипта JS код на лету в браузере , но я предполагаю , что это может быть легко модифицирован для работы в Node.js.

Я нашел его в то время как я изучаю возможность поддержки машинописи в моем живом, Firebug стиля редактора кода .

Ответил 07/10/2012 в 07:44
источник пользователем

голоса
4

Не отвечая на вопрос прямо, но так как погуглить для «запуска машинописи от узла непосредственно» выводит эту StackOverflow страницу, я полагаю , я должен добавить , что вы в состоянии сделать это с TS-узлом: https://github.com/TypeStrong / TS-узел

Ответил 15/01/2016 в 17:16
источник пользователем

голоса
0

Официальная документация о том, как использовать машинопись transpiler API для создания источника JavaScript из .ts файла:

https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#user-content-transpiling-a-single-file

Официальная документация о том, как использовать машинопись компилятор API для компиляции ts-файл или проект TS в

https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#user-content-a-minimal-compiler

(Позже не дает ответа на исходный вопрос, но очень часто доступ / изменить AST, а затем transpile объекта языка, так что может быть полезно)

Ответил 09/05/2018 в 05:52
источник пользователем

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