在 Visual Studio Code (VSCode) 中高效使用 TypeScript 进行开发和打包,需要结合合理的配置、工具链和开发流程。以下是详细步骤和最佳实践:
1. 环境准备
1.1 安装必要工具
-
Node.js 和 npm: TypeScript 需要 Node.js 环境。建议安装 LTS 版本。
# 验证安装 node -v npm -v
-
TypeScript 全局安装(可选):
npm install -g typescript
1.2 VSCode 扩展
安装以下扩展提升开发效率:
-
TypeScript Extension(官方扩展)
-
ESLint(代码规范检查)
-
Prettier(代码格式化)
-
Code Spell Checker(拼写检查)
2. 初始化 TypeScript 项目
2.1 创建项目
mkdir my-ts-project cd my-ts-project npm init -y
2.2 安装 TypeScript
npm install typescript @types/node --save-dev
2.3 生成 tsconfig.json
npx tsc --init
修改 tsconfig.json
(关键配置):
{"compilerOptions": {"target": "ES2020", // 编译目标版本"module": "CommonJS", // 模块系统"outDir": "./dist", // 输出目录"rootDir": "./src", // 源码目录"strict": true, // 启用严格类型检查"esModuleInterop": true, // 兼容 CommonJS/ESM"sourceMap": true, // 生成 SourceMap(调试必需)"skipLibCheck": true // 跳过库类型检查(提升速度)},"include": ["src/**/*"],"exclude": ["node_modules"] }
3. 开发环境配置
3.1 实时编译与监听
使用 TypeScript 的 --watch
模式自动编译:
npx tsc --watch
或通过 package.json
配置快捷命令:
{"scripts": {"dev": "tsc --watch","build": "tsc"} }
3.2 结合 ESLint 和 Prettier
-
安装依赖:
npm install eslint prettier eslint-config-prettier eslint-plugin-prettier @typescript-eslint/eslint-plugin @typescript-eslint/parser --save-dev
-
配置
.eslintrc.json
:{"root": true,"parser": "@typescript-eslint/parser","plugins": ["@typescript-eslint"],"extends": ["eslint:recommended","plugin:@typescript-eslint/recommended","plugin:prettier/recommended"],"rules": {"@typescript-eslint/no-unused-vars": "warn"} }
-
配置
.prettierrc
:{"semi": true,"singleQuote": true,"trailingComma": "all" }
4. 调试 TypeScript
4.1 配置调试器
-
在 VSCode 中按
F5
创建launch.json
,选择 Node.js 环境。 -
修改配置以支持 TypeScript:
{"version": "0.2.0","configurations": [{"type": "node","request": "launch","name": "Debug TS","preLaunchTask": "tsc: build", // 触发编译任务"program": "${workspaceFolder}/src/index.ts","outFiles": ["${workspaceFolder}/dist/**/*.js"],"sourceMaps": true // 启用 SourceMap}] }
5. 打包与构建
5.1 使用 tsc
直接编译
npm run build
5.2 使用打包工具
5.2.1 Webpack
-
安装依赖:
npm install webpack webpack-cli ts-loader --save-dev
-
配置
webpack.config.js
:const path = require('path');module.exports = {entry: './src/index.ts',mode: 'production',module: {rules: [{test: /\.ts$/,use: 'ts-loader',exclude: /node_modules/}]},resolve: {extensions: ['.ts', '.js']},output: {filename: 'bundle.js',path: path.resolve(__dirname, 'dist')} };
-
运行打包:
npx webpack
5.2.2 Rollup
-
安装依赖:
npm install rollup rollup-plugin-typescript2 @rollup/plugin-node-resolve --save-dev
-
配置
rollup.config.js
:import typescript from 'rollup-plugin-typescript2'; import { nodeResolve } from '@rollup/plugin-node-resolve';export default {input: 'src/index.ts',output: {file: 'dist/bundle.js',format: 'cjs'},plugins: [nodeResolve(), typescript()] };
-
运行打包:
npx rollup -c
5.3 使用现代工具(esbuild/swc)
-
esbuild(极速打包):
npm install esbuild --save-dev
npx esbuild src/index.ts --bundle --outfile=dist/bundle.js --platform=node
6. 高级优化
6.1 路径别名
在 tsconfig.json
中配置路径别名:
{"compilerOptions": {"baseUrl": ".","paths": {"@/*": ["src/*"]}} }
同时需在打包工具(如 Webpack/Rollup)中配置对应的别名解析。
6.2 生成声明文件
在 tsconfig.json
中启用声明文件生成:
{"compilerOptions": {"declaration": true,"declarationDir": "types"} }
7. 项目结构建议
my-ts-project/ ├── src/ │ ├── index.ts │ └── utils/ │ └── helper.ts ├── dist/ ├── types/ ├── node_modules/ ├── tsconfig.json ├── package.json └── .eslintrc.json
8. 推荐工作流
-
使用
tsc --watch
或ts-node-dev
实时编译和运行。 -
通过 ESLint 和 Prettier 保持代码规范。
-
使用 Webpack/Rollup 进行生产打包。
-
结合
npm scripts
管理常用命令:{"scripts": {"dev": "tsc --watch","build": "tsc","lint": "eslint src --ext .ts","bundle": "webpack --mode production"} }
通过以上配置和工具链,可以在 VSCode 中高效开发、调试和打包 TypeScript 项目。