我居然很难找到这个问题的答案。使用普通node .js,你可以运行任何节点路径为/to/file.js的js文件,使用CoffeeScript它是coffee hello。咖啡和ES6有babel节点hello.js。我如何用Typescript做同样的事情?

我的项目有一个tsconfig。Webpack/ts-loader使用它来为浏览器构建一个漂亮的小bundle。在此之前,我需要从控制台运行一个构建步骤,不过,这将使用项目中使用的一些.ts文件来生成模式,但我似乎无法在不编译整个项目的情况下运行单个Typescript文件。


当前回答

下面是命令

tsc指数。ts——outDir .temp && node .temp/index.js && rm -rf .temp <<<<<<<<< 编译 >>>>>>>>> <<<<<<< 运行 >>>>>>> << 清洁> >

其他回答

我创建了@digitak/esrun,一个精简的esbuild包装器,几乎可以立即执行TypeScript文件。制作esrun是因为我对ts-node很失望:太慢了,而且大多数时间都不能工作。

esrun相对于ts-node的优势包括:

非常快(使用esbuild), 可以导入ESM和CJS(只要使用你选择的库,esrun就可以开箱即用), 其中包含了一个监视模式,使用——watch选项运行脚本,对输入文件或其依赖项的任何更改都将重新触发结果 你可以在inspect模式下使用esrun来使用DevTools控制台而不是终端控制台。

安装完成后,只需运行:

npx @digitak/esrun file.ts

这个问题发布于2015年。2018年,node同时识别.js和.ts。运行节点文件。t也会运行。

下面是命令

tsc指数。ts——outDir .temp && node .temp/index.js && rm -rf .temp <<<<<<<<< 编译 >>>>>>>>> <<<<<<< 运行 >>>>>>> << 清洁> >

截至2022年5月,ts-node已支持es模块

npx ts-node --esm file.ts

你可能需要在package.json中添加"type": "module"。有些导入可能不可靠,除非打开experimental- specification -resolution=node

npmjs.com/package/ts-node # commonjs-vs-native-ecmascript-modules

为自己编写一个简单的bash包装器可能会有所帮助。

#!/bin/bash
npx tsc $1 && node ${1%%.ts}