Использовать компилятор TypeScript из node
Это довольно легко сделать с кофе - script.
var coffee = require('coffee-script');
coffee.compile("a = 1");
//=> '(function() {\n var a;\n\n a = 1;\n\n}).call(this);\n'
Есть ли способ сделать это с помощью typescript?
Изменить: также размещен на codeplex
Ответы
Ответ 1
Кажется, что в настоящее время существует более простое решение, которое вы можете сделать:
let ts = require('typescript');
let source = ts.transpileModule('class Test {}', {}).outputText;
Это приводит к:
"use strict";
var Test = (function () {
function Test() {
}
return Test;
}());
Ответ 2
Поскольку TypeScript модуль NPM не экспортирует какой-либо общедоступный интерфейс, единственным способом сделать это в настоящее время является выполнение процесса 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);
}
});
Была открыта проблема для запроса открытого интерфейса для модуля TypeScript.
Ответ 3
better-require может помочь вам в этом.
Он позволяет вам запрашивать() typescript файлы - не требуется предварительная компиляция - и множество других форматов файлов (coffeescript, clojurescript, yaml, xml и т.д.)
require('better-require')();
var myModule = require('./mymodule.ts');
Раскрытие информации: я написал лучше-требую.
Ответ 4
Отметьте этот проект github от niutech, он может конвертировать код TypeScript в JS-код на лету в браузере, но я думаю, его можно легко изменить для работы в node.js.
Я нашел его, пока я изучаю возможность поддержки TypeScript в моем живом, firebug-вдохновленном редакторе кода.
Ответ 5
Не отвечая на вопрос напрямую, но поскольку Googling для "запускать TypeScript из node напрямую" вызывает эту страницу StackOverflow, я полагаю, что я должен добавить, что вы можете сделать это с помощью ts- node: https://github.com/TypeStrong/ts-node