@billogram/billo-scripts-node
Scripts for building and maintaining TypeScript Node.js apps
Install
yarn add --dev --exact @billogram/billo-scripts-node
Usage
Add the following scripts to package.json
.
{
"scripts": {
"build": "billo-scripts-node build",
"test": "billo-scripts-node test",
"ts:compile": "billo-scripts-node ts-compile",
"ts:lint": "billo-scripts-node ts-lint",
"ts:test": "billo-scripts-node ts-test",
"ts:watch": "billo-scripts-node ts-watch",
}
}
It is possible to skip hooks for sequence tasks by passing --skip-pre-script
, --skip-script
, and --skip-post-script
, which is the same as --skip-pre-script=<task-name>
, --skip-script=<task-name>
, and --skip-post-script=<task-name>
.
Configuration files
Add a tsconfig.json
file in the same folder as package.json
.
{
"extends": "@billogram/typescript-config-node",
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src"
}
}
Add a tslint.eslint.json
file in the same folder as package.json
.
{
"extends": "./tsconfig.json",
"compilerOptions": {
"allowJs": true
},
"exclude": [
"node_modules"
],
"include": [
"**/*"
]
}
Tasks
Sequence tasks
These tasks will be run in silent mode, which means the output for each individual task will be minimal.
build
Run all necessary tasks to generate a fresh build in the dist
folder.
empty-dist
ts-compile
generate-license
filter-dist
test
Run all necessary tasks to test the quality of the project.
Simple tasks
empty-dist
Empty the dist
folder.
filter-dist
Remove unwanted test and source map files from the dist
folder.
generate-license
Generate a project license in the dist
folder.
ts-compile
Compile TypeScript to JavaScript and put the output in the dist
folder.
ts-lint
Lint source files using ESLint.
ts-test
Run tests using Jest.
ts-watch
Re-compile TypeScript to JavaScript and put the output in the dist
folder on changes to the source files.
Note
This library is being published with our use cases in mind and is not necessarily meant to be consumed by the broader public. We probably won't take your feature requests unless they align with our own needs.
License
MIT