nts-scripts
v3.18.1
Published
Simple npm `scripts` and common `devDependencies` to help build a Node TypeScript app.
Downloads
338
Maintainers
Readme
nts-scripts
Simple npm scripts
and common devDependencies
to help build a Node TypeScript app.
Inspired by Create React App's react-scripts package 👏
Included dependencies
- TypeScript
- Jest
- Eslint
- Prettier
- Along with other TypeScript supporting dependencies. See the package.json file for the full list.
Available scripts
build
Compiles your TypeScript. Expects a tsconfig.json
file with an include
property and a compilerOptions.outDir
property.
clean
Deletes your compiled TypeScript. Expects a tsconfig.json
file with a compilerOptions.outDir
property.
format
Runs prettier
against all files. Uses your .gitignore
file if it exists to ignore. Semi-customizable with args.
lint
Runs eslint
against all files. Uses your .gitignore
file if it exists to ignore. Semi-customizable with args.
start
Cleans, builds, and starts your Node project with debugging enabled. Targets the main
property in your package.json
first and falls back to the outDir
property second. Semi-customizable with args.
watch
Essentially the same as start
except your project will re-build/start when changes are seen in your outDir
. Semi-customizable with args.
Project requirements
tsconfig.json
At a minimum the properties below are required. The values can be customized.
{
"compilerOptions": {
"outDir": "./build"
},
"include": ["./src"]
}
.gitignore
At least ignore the folders below. NOTE: If you customized the outDir
in your tsconfig.json
, update the build
line here to match.
build
coverage
node_modules
.eslintrc.js
An eslint config is required. Below is the simplest setup.
module.exports = {
extends: [
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
'prettier',
],
parser: '@typescript-eslint/parser',
};
.importsortrc.js
The config below is required.
module.exports = {
'.ts, .js': {
style: 'module',
parser: 'typescript',
},
};
jest.config.js
At a minimum the config below is required. NOTE: If you customized the outDir
in your tsconfig.json
, update '<rootDir>/build/'
to match.
module.exports = {
preset: 'ts-jest',
testPathIgnorePatterns: ['<rootDir>/build/', '<rootDir>/node_modules/'],
};
Project recommendations
.prettierrc.js
It's recommended you setup a Prettier configuration file.
.nvmrc
Using nvm
along with an .nvmrc
file to automatically switch to the appropriate version of Node can be extremely helpful.
.vscode/settings.json
If you're using VS Code, a project-level settings file may be helpful to customize your experience.