Skip to content

Simple npm scripts and common devDependencies to help build a Node TypeScript app.

License

Notifications You must be signed in to change notification settings

djdmbrwsk/nts-scripts

Repository files navigation

build   npm

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.

About

Simple npm scripts and common devDependencies to help build a Node TypeScript app.

Resources

License

Stars

Watchers

Forks

Packages

No packages published