# 创建一个 TS 项目

https://khalilstemmler.com/blogs/typescript/node-starter-project/ (opens new window)

# 初始化项目

mkdir typescript-starter
cd typescript-starter
npm init -y

# 安装依赖

npm i typescript -D
npm i @types/node -D

# 配置 tsconfig.json

npx tsc --init --rootDir src --outDir build \
--esModuleInterop --resolveJsonModule --lib es6 \
--module commonjs --allowJs true --noImplicitAny true
--experimentalDecorators true
{
  "compilerOptions": {
    "target": "es5",                          
    "module": "commonjs",                    
    "lib": ["es6"],                     
    "allowJs": true,
    "outDir": "build",                          
    "rootDir": "src",
    "strict": true,         
    "noImplicitAny": true,
    "esModuleInterop": true,
    "resolveJsonModule": true
  }
}

# 创建一个 .ts 文件

mkdir src
touch src/index.ts
console.log('Hello world!');
npx tsc
node build/index.js

# 一些有用的配置

npm i ts-node -D
npm i nodemon -D
npm i rimraf -D

nodemon.json

touch nodemon.json
{
  "watch": ["src"],
  "ext": ".ts,.js",
  "ignore": [],
  "exec": "npx ts-node ./src/index.ts"
}

package.json

{
  "scripts": {
    "start:dev":"npx nodemon",
    "build": "rimraf ./build && tsc",
    "start":"npm run build && node build/index.js"
  }
}
npm run start:dev
npm run build
npm run start