@shanedg/trshcmpctr

All build config, no substance.

Usage no npm install needed!

<script type="module">
  import shanedgTrshcmpctr from 'https://cdn.skypack.dev/@shanedg/trshcmpctr';
</script>

README

trshcmpctr

Build Status

"all build config, no substance"

Install

Prefer to install from the lockfile.

npm ci

Build

Build the project in development mode.

npm run build

Build the project with production optimizations applied.

npm run build:production

Start

Start webpack-dev-server to serve the project, in-memory. Launch project in browser. Watch files, rebuilding and reloading incremental changes.

npm start

Watch

Build the project in development mode and watch files, rebuilding incremental changes.

npm run watch

Lint

Lint JavaScript files with ESLint.

npm run lint

A Note on Choice of ESLint Parser

This project compiles TypeScript with Babel, not the TypeScript compiler. Babel discards all type information during transpilation but supports a wider range of syntax than the TypeScript compiler. For this reason, we use the babel-eslint parser instead of the parser provided by @typescript-eslint. For more context, see What about Babel and babel-eslint:

The key trade-off can be summarized as: babel-eslint supports additional syntax which TypeScript itself does not, but typescript-eslint supports creating rules based on type information, which is not available to Babel because there is no type-checker.

Test

Run Jest tests.

npm run test

Type Check

This project compiles TypeScript with Babel, not the TypeScript compiler. For additional context, see the note on choice of ESLint parser above.

Run tsc against the project's TS files to catch type errors.

npm run type-check

TODO

  • Add styles, CSS and some preprocessor
    • Add linting for styles
  • Add auto versioning via conventional commits
    • Also publishing for fun? via Github actions maybe?
  • React strict mode
  • Acceptance tests
  • E2E tests