@entwurfhaus/vite-vanilla-ts-module v2.0.6
vite-vanilla-ts-template-extended (AKA vite-vanilla-ts-module
)
Update: If you prefer a minimalist vite-vanilla-ts-template, check out https://github.com/entwurfhaus/vite-vanilla-ts-template.
A starter vanilla-ts
(extended) template that began with Vite 3.x, prepared for writing node
utility libraries in typescript
. This starter is meant to provide rapid node
package development and publishing onto npm
.
What is in this template?
Below are notable dependencies bundled (and configured) in this library template:
Optional dependencies
And notable optional dependencies, great to use for improved DX etc:
- commitlint - optional, remove if yourself / team does not require enforcing conventional commits.
- vite-plugin-progress - optional, remove if yourself / team does not require :sparkles: fancy :sparkles: progress bar in terminal.
- @trivago/prettier-plugin-sort-imports - optional, auto-sort your import order in each file, set your own "sort rules".
Goal of included dependencies
Know that the above dependencies are (mostly) optional, and you may extend or remove them to your preference. The goal of introducing these dependencies as part of the template, is to:
- Easily build a custom
node
library, fast (with some style). - Easily integrate the built custom
node
library, into any monorepo framework - primarilyturborepo
andnx
. - Reduce overhead management of dependencies. For example, you can add taze library.
- Providing comfort in utilising efficient (linting, auto-sort, etc) productivity features.
- Improving the overall developer experience (DX) with this template.
Getting Started
Let's install our dependencies, then pre-setup our husky
pre-commits:
yarn
yarn prepare
npx husky add .husky/pre-commit "yarn build"
npx husky add .husky/pre-commit "yarn prettier"
Then, your .husky/pre-commit
file should look like below:
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
yarn build
yarn prettier
And since we introduced commitlint, we can enforce "conventional commit" messages with husky
:
echo "export default { extends: ["@commitlint/config-conventional"] };" > commitlint.config.js
Testing with Vitest
Run yarn test
or yarn test:coverage
to produce code coverage report.
The code coverage report will indicate, if all test cases are 100% covered, flawed logic and so on.
Running vite
Run yarn dev
to open index.html
via http://localhost:5174
.
It contains some quick links, to the stats.html
and coverage index.html
files.
Build your package
Run yarn build
, and check the dist
folder for the final build output.
If there are issues with the package, check
package.json
(propsmain
,module
,typings
,files
and etc),tsconfig.json
(such asallowJs
) and dependency versions (especiallyvite
) to narrow down the build or typings errors you're experiencing.
Publishing
And when ready to publish to npm
:
npm login
npm publish
If you need an example of how your NPM package is published, take a look at https://entwurfhaus-demo-react-app.vercel.app/ that have this template installed & used.