如何在更改时查看和重新运行 TypeScript?

Posted

技术标签:

【中文标题】如何在更改时查看和重新运行 TypeScript?【英文标题】:How to watch and re-run TypeScript on change? 【发布时间】:2020-07-22 11:00:27 【问题描述】:

我有一个用 TypeScript 编写的非常简单的应用程序:

src/index.ts

import * as http from "http";

const server = http.createServer((request, response) =>

    response.end("Hello, World");
);

server.listen(3000);

然后是我的 TypeScript 配置:

tsconfig.json


    "compilerOptions": 
        // Output options
        "target": "es5",
        "lib": [
            "es2016"
        ],
        "module": "commonjs",
        "outDir": "./build",
    

我可以使用npx tsc 构建我的代码,然后使用node ./build/index.js 运行它,并在浏览器中访问http://localhost:3000 时看到消息“Hello, World”——到目前为止一切都很好

现在使用npx tsc -w 我可以观察文件以查看它们是否发生变化并在发生这种情况时重新编译它们。这个命令“永远”运行(直到停止),所以它阻止我在同一个终端运行node ./output/index.js。使用多个终端窗口或终端多路复用器,我可以非常轻松地运行node ./output/index.js,但如果我的代码被重新编译,这个文件将不会重新运行。这意味着如果我将字符串“Hello, World”更改为“Hello, Steven”,在手动停止服务器并重新启动它之前,我不会看到更改

有没有办法像这样查看我的 TypeScript 文件并运行输出,以便在我的代码更改时停止输出并重新运行?

【问题讨论】:

密切相关:How to auto-reload files in Node.js? 密切相关:How to watch and reload ts-node when TypeScript files changenodemon watches onjy javascript files not TypeScript 我不会投票关闭,因为我有一个 dupehammer 并且不想使用它(如果我这样做了,我会指向 this),但看起来答案是nodemon + ts-node 有一点配置。 【参考方案1】:

您可以同时运行tscnodemon

npx tsc -w & npx nodemon build

或使用带有ts-node的nodemon:

npx nodemon -x ts-node -e ts src
# to run even if there are TS errors:
npx nodemon -x 'ts-node --log-error' -e ts src

或者直接使用ts-node-dev:

npx ts-node-dev src

【讨论】:

以上是关于如何在更改时查看和重新运行 TypeScript?的主要内容,如果未能解决你的问题,请参考以下文章

在文件保存时自动编译 TypeScript 文件

如何配置立即进行更改的 webpack 或 typescript?

如何在运行时更改日志级别而不重新启动 Spring Boot 应用程序

ReactJs 和 Typescript,使用 TSX 时如何更改对象内变量的状态

如何在 Android M 或更高版本中在运行时更改权限时防止重新创建 Activity

每当页面重新加载或URL更改发生时,每次都会调用typescript文件