node 如何运行typescript

node 如何运行typescript

在 Node.js 中运行 TypeScript 代码有几种常见的方法,以下是其中几种。

手工编译 TypeScript 然后运行 JavaScript

这种方法需要先将 TypeScript 代码编译为 JavaScript,然后再使用 Node.js 运行 JavaScript 文件。

a. 安装 TypeScript 依赖:

npm install -g typescript

b. 编译 TypeScript 文件:

tsc your-typescript-file.ts

c. 运行生成的 JavaScript 文件:

node your-javascript-file.js

使用 ts-node

安装 ts-node 开发依赖:

npm install --save-dev ts-node

或者使用 Yarn:

yarn add --dev ts-node

使用 ts-node 可以大大提高开发效率,因为无需手动编译 TypeScript 文件,可以直接运行。这在开发阶段非常有用。
但是在生产环境中,仍然建议使用 node 命令运行经过编译的 JavaScript 文件,因为 ts-node 在运行时需要执行编译过程,会影响性能。

ts-node 更适合用于开发和调试阶段,而 node 更适合用于生产环境中运行已经编译好的 JavaScript 代码。在开发过程中,使用 ts-node 可以提高工作效率,而在部署时使用 node 可以获得更好的性能。
在这里插入图片描述
我们添加了一个名为 dev 的新脚本,它使用 ts-node 命令运行您的 TypeScript 入口文件 src/app.ts

当您在命令行中运行 npm run dev 时,就会启动您的 TypeScript 应用程序,并且无需手动编译 TypeScript 文件。这在开发阶段非常有助于提高工作效率。

创建一个typescript node项目

  1. 运行 npm init -y 命令,这将在当前目录下创建一个 package.json 文件。
  2. 运行 npm install --save-dev typescript 命令,将 TypeScript 安装为开发依赖。
  3. 创建 tsconfig.json 文件:
    在项目根目录下运行 npx tsc --init 命令,这将创建一个tsconfig.json 文件,用于配置 TypeScript 编译器。
  4. 创建 src 目录并编写 TypeScript 代码:
    在项目根目录下创建一个 src 目录,用于存放你的 TypeScript 源代码文件。
    在 src 目录下创建一个新文件,例如 app.ts,并编写你的 TypeScript 代码。
  5. 配置 package.json 文件:
    在 package.json 文件的 scripts 部分,添加以下脚本
"scripts": {
  "build": "tsc",
  "start": "node dist/app.js"
}

“build” 脚本用于编译 TypeScript 代码,“start” 脚本用于运行编译后的 JavaScript 代码。

通过在 package.json 文件中添加脚本,可以方便地使用 npm 命令进行编译和运行:

npm run build
npm start

npm run build: 运行 TypeScript 编译器,将 TypeScript 代码编译为 JavaScript 代码。
npm start: 运行编译后的 JavaScript 代码,启动 Node.js 应用程序。

Node.js 应用程序使用 TypeScript 。主要的变化包括:

  • 添加 tsconfig.json 文件,配置 TypeScript 编译器选项。
  • 将文件扩展名改为 .ts。
  • 修改导入语句,使用 TypeScript 的导入语法。
  • 使用 TypeScript 语法,为变量和函数添加类型注解。
  • 更新 package.json 文件中的 scripts 部分,以便使用 TypeScript 编译器进行构建和运行。

这样,你就可以在 TypeScript 环境下继续开发和维护你的 Node.js 应用程序了

tsconfig.json

{
  "compilerOptions": {
    /* Visit https://aka.ms/tsconfig to read more about this file */

   /* Language and Environment */
    "target": "es2016",                                  /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */

    /* Modules */
    "module": "commonjs",                                /* Specify what module code is generated. */
    "esModuleInterop": true,                             /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
    // "preserveSymlinks": true,                         /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
    "forceConsistentCasingInFileNames": true,            /* Ensure that casing is correct in imports. */

    /* Type Checking */
    "strict": true,                                      /* Enable all strict type-checking options. */

    /* Completeness */
    // 跳过对引入库的类型检查
    // "skipDefaultLibCheck": true,                      /* Skip type checking .d.ts files that are included with TypeScript. */
    "skipLibCheck": true,
    "outDir": "dist",
  }
}

tsconfig.json 文件中如果没有指定 outDir 选项,这意味着编译器不会将 JavaScript 文件输出到任何特定的目录。
"include": ["src/**/*"] 选项,将 src 目录下的所有 TypeScript 文件包括进来。tsconfig.json 文件中没有指定 include 或 files 选项,这意味着编译器不知道哪些 TypeScript 文件需要编译。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西京刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值