# TS 在 node 项目中使用

# 1. 介绍

node.js 项目中引入 TS

# 2. 快速开始

# 2.1. 环境

node:

node -v

# v16.14.2

# 2.2. typescript

说明:

  • 基础配置

安装:

npm i -D typescript

npx tsc --version
# Version 5.3.3


npm i -D @tsconfig/node-lts
# "@tsconfig/node-lts": "^20.1.1"

配置:

  • 创建 tsconfig.json 文件

  • 内容:

    {
      "extends": "@tsconfig/node-lts/tsconfig.json",
      "compilerOptions": {
        // 默认是将文件编译到 ts 文件所在的目录
        // 可指定编译目录
        "outDir": "dist"
      },
      "include": ["src"],
      "exclude": ["node_modules"]
    }
    

编译:

npx tsc

# 2.3. ts-node

说明:

  • 直接执行 ts 文件

安装:

npm i -D ts-node

# "ts-node": "^10.9.2"

使用:

npx ts-node src/index.ts

# 2.4. ts-node-dev

说明:

  • 侦听文件的变化,自动执行 ts 文件

安装:

npm i -D ts-node-dev

# "ts-node-dev": "^2.0.0"

使用:

npx ts-node-dev --respawn ./src/index.ts

# 2.5. eslint

安装:

# 先安装 eslint-config-airbnb-typescript , 查看其 package.json 中的 peerDependencies, 避免依赖的版本不对
npm i -D eslint-config-airbnb-typescript@17 eslint@8 @typescript-eslint/eslint-plugin@6 @typescript-eslint/parser@6

参考:

配置:

  • .eslintrc.js:

    module.exports = {
      parser: '@typescript-eslint/parser',
      parserOptions: {
        ecmaVersion: 'latest', // Allows the use of modern ECMAScript features
        sourceType: 'module', // Allows for the use of imports
        project: './tsconfig.json',
      },
      extends: [
        'airbnb-base',
        'airbnb-typescript/base',
      ],
      env: {
        node: true, // Enable Node.js global variables
      },
    };
    
  • tsconfig.json:

{
  // ...

  "include": [
    "src",
    ".eslintrc.js", // 包含 此文件
  ],
}

# 3. 参考

本章目录