Man*_*ngh 3 performance online-compilation typescript ts-node
目前我们有客户端服务器应用程序(用于竞争编码目的),客户端点击编译和运行并将 ts 代码发送到服务器,其中 ts 代码存储在一个文件中,并在服务器上使用测试用例在本地运行,并通过测试用例将输出返回给客户端通过/结果失败。但是运行 ts 文件非常慢,而且这需要很多时间。
我在 transpileonly 模式下使用 ts-node 在服务器中本地编译和运行文件。
例如。npx ts-node -T tsFileName.ts
我们的要求是针对 ts 代码的编译和运行时间。
小智 32
TS-Node 官方文档概述了几个性能建议,其中一些其他人已经发表了评论。
https://typestrong.org/ts-node/docs/performance/
然而,令我惊讶的是没有人提到 SWC 集成!来自文档:
使用我们的
swc集成。 这是迄今为止最快的选择
SWC,即 Speedy Web Compiler,是完全用 Rust 编写的 JavaScript/TypeScript 转译器。因此,它比 tsc 或 babel 等替代方案要快得多。
根据 SWC 网站(https://swc.rs/):
SWC 在单线程上比 Babel 快 20 倍,在四核上比 Babel 快 70 倍。
将 SWC 核心库添加到您的项目中:
npm i -D @swc/core
Run Code Online (Sandbox Code Playgroud)
并将以下内容添加到 tsconfig.json 中:
{
"ts-node": {
"swc": true
}
}
Run Code Online (Sandbox Code Playgroud)
你就可以出发了!享受极快的转译。
我添加了这些环境变量,启动时间可能从几秒到几毫秒:
TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true ts-node ./script.ts
Run Code Online (Sandbox Code Playgroud)
考虑ts-node通过安装[sudo] npm install -g typescript ts-node,然后您可以避免npx确保ts-node每次都安装的额外步骤。
您可以使用esbuild-runner它看起来快得多。
npm install -g esbuild-runner
npm install -g esbuild
并运行代码
esr src/index.ts
| 归档时间: |
|
| 查看次数: |
5411 次 |
| 最近记录: |