DEV Community

Cover image for TEN Stack: Typescript-Express-Node template
Wonjang Son
Wonjang Son

Posted on

TEN Stack: Typescript-Express-Node template

Overview

TEN stack is a Typescript + Express + Node starter kit to develop REST API server apps.
Nothing new under the sun, just a straight forward combo to make server development a little bit faster. This template is perfect for anyone who is starting on the server-side world based on Node.js

This template comes with:


Prerequisites

Install

  • Fork or Use this template repository.
  • Clone the forked repository.
  • Install the dependencies with yarn or npm.

Make sure you already have node.js and npm or yarn installed in your system.

  • Set your git remote add origin path
 git remote add origin ${forked-and-cloned-path}
Enter fullscreen mode Exit fullscreen mode

Update the url if you already have an origin

Config

  • Copy .env.example a file at the root of the application.
  • Add or modify specific variables and update it according to your need.
 cp .env.example .env
Enter fullscreen mode Exit fullscreen mode

Check the config folder to customize your settings (/src/config)

Alias @

To make paths clean and ease to access @ is setup up for /src path

// BEFORE
import config from './config';
import routes from './routes';

// NOW
import config from '@/config';
import routes from '@/routes';
Enter fullscreen mode Exit fullscreen mode

You can customize this setup:
/tsconfig.json > compilerOptions.paths
/eslintrc.yml > rules.settings.alias.map

Local Development

Run the server locally. It will be run with Nodemon and ready to serve on port 8080 (unless you specify it on your .env)

 yarn start # or npm start
Enter fullscreen mode Exit fullscreen mode

Check package.json to see more "scripts"

Production

First, build the application.

 yarn build # or npm run build
Enter fullscreen mode Exit fullscreen mode

Then, use pm2 to start the application as a service.

 yarn service:start # or npm run service:start
Enter fullscreen mode Exit fullscreen mode

Contribution

Check the source here
Please feel free to open an issue or a pull request to suggest changes or additions.

Discussion (2)

Collapse
leandroandrade profile image
Leandro Andrade

Congrats.

I suggest to put package-lock.json in your repository. Without that, you can have unexpected behavior.

Collapse
filoscoder profile image
Wonjang Son Author

Thanks for the advice, you can't be more right about that 👍