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.
Below are notable dependencies bundled (and configured) in this library template:
And notable optional dependencies, great to use for improved DX etc:
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:
node library, fast (with some style).node library, into any monorepo framework - primarily turborepo and nx.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
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.
viteRun yarn dev to open index.html via http://localhost:5174.
It contains some quick links, to the stats.html and coverage index.html files.
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,filesand etc),tsconfig.json(such asallowJs) and dependency versions (especiallyvite) to narrow down the build or typings errors you're experiencing.
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.