Skip to content

Instantly share code, notes, and snippets.

@victorcolina22
Last active August 31, 2024 18:39
Show Gist options
  • Select an option

  • Save victorcolina22/1a73173b164b4ff1dc99cb4154258139 to your computer and use it in GitHub Desktop.

Select an option

Save victorcolina22/1a73173b164b4ff1dc99cb4154258139 to your computer and use it in GitHub Desktop.
Node + TypeScript

Node + TypeScript

  1. Initial setup
mkdir typescript-starter
cd typescript-starter
  1. Setup Node.js package.json
npm init -y
  1. Add TypeScript as a dev dependency
npm install typescript --save-dev
  1. Install ambient Node.js types for TypeScript
npm install @types/node --save-dev
  1. Create a tsconfig.json.
npx tsc --init --rootDir src --outDir build \
--esModuleInterop --resolveJsonModule --lib es6 \
--module commonjs --allowJs true --noImplicitAny true
{
  "compilerOptions": {
    "target": "es5",                          
    "module": "commonjs",                    
    "lib": ["es6"],                     
    "allowJs": true,
    "outDir": "build",                          
    "rootDir": "src",
    "strict": true,         
    "noImplicitAny": true,
    "esModuleInterop": true,
    "resolveJsonModule": true
  }
}
  1. Create the src folder and create our first TypeScript file
mkdir src
touch src/index.ts
  1. Create the src folder and create our first TypeScript file
mkdir src
touch src/index.ts

Useful configurations & scripts

Cold reloading

npm install --save-dev ts-node nodemon

Add a nodemon.json config.

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

Creating production builds

npm install --save-dev rimraf
"build": "rimraf ./build && tsc",

Production startup script

package.json
"start": "npm run build && node build/index.js"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment