This template provides a semi-minimal monorepo setup for Node.js + TypeScript projects.
- ESM support (ECMAScript modules)
- TypeDoc for generating API documentation
- GitHub Actions for continuous integration
- Dependabot for updating dependencies
- node-modules-inspector for deep insights on dependency graph
- Uses the VoidZero-based JS toolchain
Choose a method:
- GitHub UI: Press the "Use this template" button in the top-right corner of this page.
- GitHub CLI: Install GitHub CLI. Then run one of the following:
gh repo create --template neoncitylights/node --public --clone _repository_ # clone as public gh repo create --template neoncitylights/node --private --clone _repository_ # clone as private
Using your text editor or IDE, find-and-replace the following placeholders:
@author/package: Replace this with the author's name (e.g a user or organization) and package's name._author_: Replace this with the author's name (e.g real name, GitHub username, etc)._username_: Replace this with your GitHub username._repository_: Replace this with the name of your repository._desc_: Replace this with a short description of the package.
# Enter the root directory of the package you want to publish
cd packages/pkg1
# if package is non-scoped, e.g "hello-world"
npm publish
# if package is scoped, e.g "@user123/hello-world"
npm publish --access public| Command | Description |
|---|---|
npm run build |
Build all packages |
npm run docs |
Generate documentation |
npm run docs-watch |
Generate documentation in watch mode |
npm run clean |
Remove all generated files |
npm run test |
Run unit tests |
npm run test-ci |
Run unit tests in CI mode |
npm run test-ui |
Run unit tests in UI/browser mode |
npm run test-html |
View test results in browser |
npm run test-json |
View test results in JSON format |
npm run fmt |
Apply formatting fixes |
npm run fmt-ci |
Check for formatting issues (used for CI) |
npm run lint |
Check for Oxlint issues |
npm run fix |
Apply Oxlint fixes |
npm run inspect |
Run node-modules-inspector server |
| Tool | File | Documentation |
|---|---|---|
| NPM | package.json, packages/*/package.json |
docs, website |
| TypeScript | tsconfig.json, packages/*/tsconfig.json |
docs, website |
| TypeDoc | tsconfig.json (typedocOptions) |
docs, website |
| Oxfmt | .oxfmtrc.json |
docs, website |
| Oxlint | .oxlintrc.json |
docs, website |
| tsdown | packages/*/tsdown.config.ts |
docs, website |
| Vite | packages/*/vite.config.ts |
docs, website |
| Vitest | vitest.config.ts, packages/*/vite.config.ts (test) |
docs, website |
| Dependabot | .github/dependabot.yml |
docs, website |
This software is licensed under the MIT license (LICENSE or https://opensource.org/license/mit/).
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the MIT license, shall be licensed as above, without any additional terms or conditions.