是否可以使用tsc或ts-node或其他方式更快地编译和运行ts代码?

时间:2019-10-24 15:42:33

标签: typescript performance ts-node online-compilation

当前,我们有客户端服务器应用程序(出于竞争性编码目的),其中客户端命中编译并运行,并将ts代码发送到服务器,其中ts代码存储在文件中,并通过服务器上的测试用例在本地运行,并且输出通过测试返回给客户端案例通过/失败结果。 但是运行ts文件的速度非常慢,这花费了很多时间。

我正在使用transpileonly模式下的ts-node在服务器中本地编译和运行文件。

例如npx ts-node -T tsFileName.ts

我们对ts代码的编译和运行时间提出了要求。

5 个答案:

答案 0 :(得分:0)

选项A

  1. 尝试在不同的文件中生成TS代码,例如:将每个函数动态拆分到一个单独的文件中,或要求用户以较少的代码“上传”不同的ts文件,也可以动态检查和限制每个函数或文件的行数
  2. 只需转译已更改的文件(可以使用watch编译器选项轻松完成此部分)

选项B

尝试玩一些compiler options

一些有趣的:   增量:true,noEmit:true,严格:false,skipLibCheck:true

答案 1 :(得分:0)

我添加了这些环境变量,并且启动时间从几秒变到了几毫秒:

TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true ts-node ./script.ts

考虑仅通过ts-node安装[sudo] npm install -g typescript ts-node,然后避免使用npx来确保每次都安装ts-node的额外步骤。

答案 2 :(得分:0)

使用nodemon快速编译的一种方法

  1. 安装Nodemon:npm i -g nodemon

  2. 创建文件nodemon.json

    {
     "watch": ["src"],
     "ext": ".ts,.js",
     "ignore": [],
     "exec": "ts-node ./src/server.ts"
    }
    
  3. package.json

    中添加命令
    "start:dev": "nodemon",
    

答案 3 :(得分:0)

现在是 2021 年。有人对本土事物感兴趣吗,你可以看看这个:https://swc.rs/

答案 4 :(得分:0)

您可以使用 esbuild-runner,这似乎要快得多。

npm install -g esbuild-runner

npm install -g esbuild

然后运行代码 esr src/index.ts