nodejs-express-ts-app v1.0.2
Node.js Express TypeScript App
A basic starting point for your TypeScript Node.js Express projects, built with Webpack v5.
- The build is based on vanilla JS with no specific frontend framework in mind,
 - but you can definitely add the frontend framework of your choice and update configurations accordingly.
 - Also, there is no particular db setup taken into mind, so you should set up the db of your choice and configure accordingly.
 
This project assumes you will use
- TypeScript
 - Express.js server
 - The rest (frontend framework, db, etc.) is left for the user to freely configure
 
Getting Started
Initiate your project by running below command in the directory of your choice: (Replace 'my-app' with your choice of project name)
npx nodejs-express-ts-app my-app- This will:
- download all necessary files and folders,
 - generate package.json
 - initialize git
 
 
Then, make sure to install dependencies:
npm installThen, compile typescipt files by running:
npx tscOr you can install TypeScript globally to use the global tsc command.
npm i -g typescripttscTo start the development server, run:
npm start- This will run two different scripts:
webpack serve --config webpack.dev.jsnodemon server/server.js
 - Development server has been designed to run two separate servers:
- Webpack Dev Server for frontend (at PORT 3032)
 - Express Server for backend APIs (at PORT 8083)
 
 - Other scripts are also included for starting the server (e.g. 
npm run start:dev2, which useswebpack-dev-middleware), but hot reload does not work with these. - Using 
npm startis recommended. - To adjust ports and other settings/logic, please configure accordingly.
 
To build your project for production, run:
npm run buildtsconfig.json is setup as below:
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "lib": [
      "DOM",
      "DOM.Iterable",
      "ESNEXT"
    ],
    "moduleResolution": "node",
    "watch": true,
    "jsx": "preserve",
    "removeComments": true,
    "noImplicitAny": true,
    "noImplicitReturns": true,
    "noImplicitThis": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "preserveConstEnums": true,
    "resolveJsonModule": true,
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "declaration": true,
    "skipLibCheck": true,
    "sourceMap": true,
    "rootDir": "./"
  }
}Notes on Configuration
If you decide to change certain property names and values in package.json (e.g. main, html, fallback, favicon, etc.) or change the name/location of the main project file (which is set to client/index.ts), please make sure to update the relevant configurations in webpack accordingly.
Requirements:
(as of 2021.08.18)
- LTS versions of node & npm
- node v.14.17.5
 - npm v.6.14.14
 - Other versions of node & npm have not yet been tested other than v.15.4.0, which is known to fail.
 - Using LTS version is recommended.
 
 
Current Known Issues
(as of 2021.08.18):
- Install fails on node v.15.4.0
- Other variations of v15 have not been tested
 
 
Issues
If you find any new bugs/errors, please file issues at: https://github.com/pdl39/nodejs-express-ts-app/issues
This package was built using nodejs-express-app, which is a JavaScript version of the same boilerplate.
If you are looking for a boilerplate for your JavaScript Node.js Express project, you can refer to:
nodejs-express-app
- github: https://github.com/pdl39/nodejs-express-app
 - npm: https://www.npmjs.com/package/nodejs-express-app