$ npm install typescript --save-dev
$ npm install express
$ npm install --save-dev eslint @types/express @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-config-prettier
$ npm install --save-dev ts-node-dev
// GENERATE TSCONFIG FILE FROM TERMINAL
$npm run tsc -- --init
$tsc --init
// PACKAGE.JSON
{
// ..
"scripts": {
"start": "node dist/index.js",
"build": "tsc --build",
"clean": "tsc --build --clean",
"tsc": "tsc",
"dev": "ts-node-dev index.ts",
"lint": "eslint src/**/*.ts",
"format": "src/**/*.ts --fix",
},
// ..
}
// TSCONFIG.JSON
{
"compilerOptions": {
"target": "ES2018",
"outDir": "dist",
"sourceMap": true,
"module": "commonjs",
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": false,
"noFallthroughCasesInSwitch": true,
"esModuleInterop": true,
"resolveJsonModule": true
},
"include": [
"src/**/*.ts",
],
"exclude": [
"node_modules"
]
}
//.ESLINTRC
{
"root": true,
"parser": "@typescript-eslint/parser",
"plugins": [
"@typescript-eslint"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"prettier"
],
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
},
"env": {
"browser": true,
"es6": true,
"node": true
},
"rules": {
"indent": 0,
"linebreak-style": 0,
"quotes": [
"error",
"double"
]
}
}
// PRETTIERRC
{
"trailingComma": "all",
"importOrder": [
"<THIRD_PARTY_MODULES>",
"next-seo.config",
"^components/(.*)$",
"^utils/(.*)$",
"^assets/(.*)$",
"^@fontsource/(.*)$",
"^[./]"
],
"importOrderSeparation": true,
"importOrderSortSpecifiers": true
}
Comments