This starter kit is a launching point for ts/js module development (not React). Running the build script compiles the typescript code into a distribution that is ready to be published to a registry like NPM, and can easily be consumed by other TS modules. This module is part of a collection of uniformly built starter-kits designed for large-scale application development with TypeScript, GraphQL, and React. Find these, articles, and examplse at www.TGRStack.com. Skip to the bottom for links to a series of tutorials that walkthrough the creation of this module.
* nps # Executes the module, watching for rebuilds.
* nps help # Displays all available commands
* nps commit # Creates a commit, don't use `git commit -m ...`
* nps build # Builds the module
* nps lint # Lint checks the module
* nps test # Test checks the module
- ๐ ES2018+ support syntax that is stage-3 or later in the TC39 process.
- ๐ฅ Hot development restarts dev-server when your src changes
- ๐ Preconfigured to support development and optimized production builds
- ๐ถ
typescript
incremental returns reducing development bugs - ๐ฆ
tslint
configured for strict, consistent, code style
- ๐ญ
jest
as the test framework. - ๐ญ
ts-jest
configured to test TS files, uses tsconfig.jest.json, and skip babel.
- ๐ฆ All source is bundled using Webpack v4
- ๐ webpack for dev, prod, common
- ๐ฆ
ts-loader
for compiling typescript - ๐ฆ babel-loader for additional polyfills (browser support)
- ๐ HappyPack
- ๐ค Auto generated Vendor DLL for smooth development experiences
- ๐ Tree-shaking
- ๐ฎ
nps
node-package-scripts removes the limitation of package.json enabling JS & //comments . Modify/package-scripts.js
and usenps <command>
instead ofnpm run <command>
. - ๐
commitizen
to help us generate beautifully formatted and consistent commit messages. - ๐น
cz-emoji
is a plugin for commitizen that adds emoji to the commit template. - ๐
standard-version
is a replacement fornpm version
with automatic CHANGELOG generation - โ
commitlint
validates commit messages to follow commitizen patterns
To use the starter-kit to build your own ts-module run these commands:
git clone https://github.com/Falieson/2018-typescript-module.git my-project
cd my-project
rm -rf .git && git init
git commit -m "INIT'd w/ Falieson's 2018-typescript-module@SHA4985"
npm install
nps test
nps
Open package.json and reset following fields:
- name
- version ( It is recommended to start from 1.0.0 )
- description
- main ( "umd/typescript-lib-starter.js" => "umd/{name}.js" )
- repository.url
- author
- license ( use whatever you want )
Now go make some changes to src/index.ts
to see the tooling in action.