Rollup Ts Library Boilerplate
A starter project that makes creating a TypeScript library extremely easy.
Usage
The version of your node.js should be greater than v12
git clone git@github.com:x-cold/rollup-ts-library-boilerplate.git YOURFOLDERNAME
cd YOURFOLDERNAME
# Run npm install and write your library name when asked. That's all!
npm install
Features
- Zero-setup. After running
npm install
things will setup for you😉 - RollupJS for multiple optimized bundles following the standard convention and Tree-shaking
- Tests, coverage and interactive watch mode using Jest
-
Docs automatic generation and deployment to
gh-pages
, using TypeDoc - Automatic types
(*.d.ts)
file generation - (Optional) Automatic releases and changelog, using standard-version, Commitizen, Conventional changelog and Husky (for the git hooks)
- Deploy your docs to github pages via gh-pages branch
Importing library
You can import the generated bundle to use the whole library generated by this starter:
import myLib from 'mylib'
Additionally, you can import the transpiled modules from dist/lib
in case you have a modular library:
import something from 'mylib/dist/lib/something'
NPM scripts
-
npm lint
: Eslint code -
npm lint:fix
: Eslint code and try to fix problems -
npm start
: Realtime complie code -
npm run docs
: Generate type documents -
npm run build
: Build ths dist products -
npm run release
: The same asnpm run release:patch
-
npm run release:patch
: Automatically upgrade patch versioin and update CHANGELOG.md -
npm run release:minor
: Automatically upgrade minor versioin and update CHANGELOG.md -
npm run release:major
: Automatically upgrade major versioin and update CHANGELOG.md -
npm run test
: Run test suite via jest with code coverage -
npm run test:watch
: Run test suite in interactive watch mode -
npm run test:prod
: Run linting and generate coverage -
npm run deploy
: Clean docs directory and rebuild docs pages
Git Hooks
There is already set a precommit
hook for formatting your code with Eslint and Commitlint
By default, there are two disabled git hooks. They're set up when you run the npm i
script. They make sure:
- You follow a conventional commit message