如何以编程方式将打字稿文件呈现为 javascript?
How to render typescript file to javascript programmatically?
我正在尝试弄清楚如何以编程方式将打字稿文件呈现为 javascript 文件。
是否可以像这样使用 ts-node:
function tsMiddleware (req, res, next) {
var parsed = require('url').parse(req.url);
if (parsed.pathname.match(/\.ts$/)) {
return ts(parsed.pathname).then(function (o) {
res.setHeader('Content-Type', 'text/js');
res.end(o.js);
}).catch((err) => {
console.log(err);
});
}
next();
function ts(src) {
return new Promise((resolve, reject) => {
require('ts-node').render({
file: 'src' + src
}, function (err, res) {
if (err) {
reject(err);
} else {
resolve(res);
}
});
});
}
}
我不想在 nodejs 中执行 ts 文件,而是编译 ts 文件并将输出发送回浏览器。
这是一个例子:
const ts = require("typescript")
async function tsTranspile(tsCode) {
return await ts.transpileModule(tsCode, { /* Here the compiler options */ })
}
使用方法:
tsTranspile("const f = a => a + 1")
.then(jsCode => console.log(jsCode))
.catch(err => console.log("Error:", err))
另请阅读:
我正在尝试弄清楚如何以编程方式将打字稿文件呈现为 javascript 文件。
是否可以像这样使用 ts-node:
function tsMiddleware (req, res, next) {
var parsed = require('url').parse(req.url);
if (parsed.pathname.match(/\.ts$/)) {
return ts(parsed.pathname).then(function (o) {
res.setHeader('Content-Type', 'text/js');
res.end(o.js);
}).catch((err) => {
console.log(err);
});
}
next();
function ts(src) {
return new Promise((resolve, reject) => {
require('ts-node').render({
file: 'src' + src
}, function (err, res) {
if (err) {
reject(err);
} else {
resolve(res);
}
});
});
}
}
我不想在 nodejs 中执行 ts 文件,而是编译 ts 文件并将输出发送回浏览器。
这是一个例子:
const ts = require("typescript")
async function tsTranspile(tsCode) {
return await ts.transpileModule(tsCode, { /* Here the compiler options */ })
}
使用方法:
tsTranspile("const f = a => a + 1")
.then(jsCode => console.log(jsCode))
.catch(err => console.log("Error:", err))
另请阅读: