Quickstart for esbuild library projects.
- Typescript
- Testing with jest
- Linting with prettier, eslint
- CI and skeleton CD with GitHub Actions
- Dockerfiles for build and test
- Publish to NPM and GitHub Packages by creating releases
See scripts
in package.json
for more scripts.
npm run d
watch and buildnpm run t:watch
watch and testnpm run lint
npm run build
Build targets are set in esbuild.mjs
.
-
Get an automation token from npm under settings
https://www.npmjs.com/settings/$YOUR_USERNAME/tokens/
-
Add the token to your repository secrets.
https://github.com/$YOUR_USERNAME/$YOUR_REPO_NAME/settings/secrets/actions/new
- Name:
NPM_TOKEN
- Value: The automation token you got from the previous step
- Name:
-
Update the
scope
key in./github/workflows/publish.yml
to your GitHub (organisation) name -
Configure GitHub Pages
https://github.com/gyng/esbuild-quickstart/settings/pages
- Source:
gh-pages
branch - Directory:
/ (root)
- Source:
-
Bump your version number in
package.json
before this. Runnpm i
to updatepackage-lock.json
. Publishing will fail if the version already exists. -
Create a new release.
https://github.com/$YOUR_USERNAME/$YOUR_REPO_NAME/releases
The workflow at
./github/workflows/publish.yml
should run and publish your packages to both NPM and GitHub Packages.Also, API documentation will be published to your GitHub pages via the
gh-pages
branch. It will be viewable athttps://$YOUR_NAME.github.io/$YOUR_REPO/
.