A Node.js starter kit featuring ES6 with Secuential Asynchrony (async/await), Express (Routing middlewares, Web, Api), Typescript, SCSS, EJS, Nodemon, Bootstrap 4, TSLint.
-
Simple npm setup and maintenance, without grunt/gulp/webpack/...
-
Support for async/await
Example:
async function(req, res, next) {
let title = 'NodeTyped Express';
try {
let data = await readFile(file, 'utf-8'); // no callbacks!
res.render('index', { title: title, dump: data });
} catch (e) {
next(e);
}
}
Make sure you have node version >= 4.0
# clone the repo
# --depth 1 removes all but one .git commit history
git clone --depth 1 https://github.com/jamg44/NodeTyped.git projectname
# change directory to your new project
cd projectname
# add required global libraries
npm install typings typescript -g
# install the repo dependencies with npm
npm install
# start the server
npm run watch
You can start the server in development mode (linter included) with:
npm run watch
Open the browser at:
As you save in your editor, the compiler will rebuild and restart the server.
Run the linter manually:
npm run lint
Clean temp folders:
npm run clean
To run the project in a server you'll want to run the built code instead src version.
# deploy the repo to server and run
npm install
npm start
When requiring from node_modules you must use require:
// require from /node_modules
let express = require('express');
With other module types you can use import (node api, created modules):
import * as fs from 'fs';
import { findConfigFile } from '../lib/utils';
To change project name update package.json
"name": "project_name", <-----
...
"watch": "tsc && DEBUG=project_name2:* ... <-----
- Add models (mongoose, sequelize)
- Add karma/jasmine
- Add test coverage report
- Yeoman