npm init -y
(update package.json according to your description)- Update entry point in package.json to
src/server.ts
- Create
src
folder andserver.ts
file inside it
- install typescript:
npm install -D typescript
- create tsconfig.json:
npx tsc --init
- update tsconfig.json
"target": "es6" "module": "commonjs" "outDir": "./dist" "rootDir": "./src"
- add include and exclude at root level in tsconfig.json
"include": ["src/**/*"] "exclude": ["node_modules"]
- install ts-node-dev:
npm install -D ts-node-dev
- add or update start script in package.json:
"start": "ts-node-dev --respawn --transpile-only src/server.ts"
npm install -D eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin
- create eslint config file:
npx eslint --init
- install prettier:
npm install -D prettier eslint-config-prettier
- install husky:
npx husky-init && npm install
- install lint-staged:
npm install -D lint-staged
- update package.json
"lint-staged": { "src/**/*.{js,ts,json,css,scss,md}": [ "eslint --fix", "prettier --write" ] }
- update husky pre-commit in
*/.husky/pre-commit
npx lint-staged
npm install express
npm install -D @types/express
npm install dotenv
npm start
: start the servernpm run lint:check"
: check lint the codenpm run lint:fix
: fix lint errorsnpm run lint:staged
: lint staged files (only used by lint-staged)prettier:check
: check prettier errorsprettier:fix
: fix prettier errorsprettier:staged
: prettier staged files (only used by lint-staged)lint-prettier:check
: check lint and prettier errorslint-prettier:fix
: fix lint and prettier errorsprepare
: husky prepare command (only used by husky)
*** update lint-staged in package.json
"lint-staged": {
"src/**/*.{js,ts,json,css,scss,md}": [
"npm run lint:staged",
"npm run prettier:staged"
]
}