使用来自节点的TypeScript编译器
用咖啡脚本来做这个很容易。
var coffee = require('coffee-script'); coffee.compile("a = 1"); //=> '(function() {\n var a;\n\na = 1;\n\n}).call(this);\n'
有没有办法做到这一点打字稿?
编辑:也张贴在codeplex上
似乎现在有一个更简单的解决scheme,你可以这样做:
let ts = require('typescript'); let source = ts.transpileModule('class Test {}', {}).outputText;
这导致:
"use strict"; var Test = (function () { function Test() { } return Test; }());
由于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模块的公共接口。
更好的要求可以帮助你实现这一目标。
它可以让你需要()打字稿文件 – 不需要预编译 – 以及一堆其他文件格式(coffeescript,clojurescript,yaml,xml等)
require('better-require')(); var myModule = require('./mymodule.ts');
披露:我写了更好的要求。
通过niutech检查这个github项目 ,它可以在浏览器中将TypeScript代码转换为JS代码,但是我想可以很容易地将其修改为在node.js中工作。
我在调查支持TypeScript的可能性的同时,在我的现场的, 萤火虫启发的代码编辑器中find了它。
不直接回答这个问题,但由于谷歌search“从节点直接运行TypeScript”带来了这个StackOverflow页面,我想我应该补充说,你可以做到这一点与TS节点: https : //github.com/TypeStrong / TS-节点