Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sakkke/nodejs-ultimate-template
A ultimate starter template for Node.js with TypeScript + Jest + ESLint + Parcel + TypeDoc (+ Gitpod)! 😄 There's also automated testing, linting, and documentation generation using GitHub Actions! ⚡ Let's get started development at the fastest speed! 🏎️
https://github.com/sakkke/nodejs-ultimate-template
eslint gitpod jest nodejs parcel starter template typedoc typescript
Last synced: 14 days ago
JSON representation
A ultimate starter template for Node.js with TypeScript + Jest + ESLint + Parcel + TypeDoc (+ Gitpod)! 😄 There's also automated testing, linting, and documentation generation using GitHub Actions! ⚡ Let's get started development at the fastest speed! 🏎️
- Host: GitHub
- URL: https://github.com/sakkke/nodejs-ultimate-template
- Owner: sakkke
- License: unlicense
- Created: 2021-10-31T04:29:38.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-11-03T22:12:25.000Z (over 3 years ago)
- Last Synced: 2024-11-25T07:40:23.569Z (2 months ago)
- Topics: eslint, gitpod, jest, nodejs, parcel, starter, template, typedoc, typescript
- Language: Shell
- Homepage: https://sakkke.github.io/nodejs-ultimate-template/
- Size: 2.24 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[![license](https://img.shields.io/github/license/sakkke/nodejs-ultimate-template)](./LICENSE)
[![.github/workflows/main.yml](https://github.com/sakkke/nodejs-ultimate-template/actions/workflows/main.yml/badge.svg)](https://github.com/sakkke/nodejs-ultimate-template/actions/workflows/main.yml)
[![github-pages](https://img.shields.io/github/deployments/sakkke/nodejs-ultimate-template/github-pages?label=github-pages)](https://sakkke.github.io/nodejs-ultimate-template/)
[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-908a85?logo=gitpod)](https://gitpod.io/from-referrer/)
[![GitHub tag](https://img.shields.io/github/v/tag/sakkke/nodejs-ultimate-template)](https://github.com/sakkke/nodejs-ultimate-template/tags)
[![npm](https://img.shields.io/npm/v/@0wv/nodejs-ultimate-template)](https://www.npmjs.com/package/@0wv/nodejs-ultimate-template)# Node.js Ultimate Template
![nodejs-parcel-typescript](./assets/nodejs-parcel-typescript.svg)
A *ultimate starter template* for Node.js with **TypeScript** + **Jest** + **ESLint** + **Parcel** + **TypeDoc** (+ **Gitpod**)! 😄
There's also automated testing, linting, and documentation generation using GitHub Actions! ⚡
*Let's get started development at the fastest speed!* 🏎️---
- [Use this template on GitHub](https://github.com/sakkke/nodejs-ultimate-template/generate)
- [View documentation generated by TypeDoc](https://sakkke.github.io/nodejs-ultimate-template/)
- [View code coverage report by Jest](https://sakkke.github.io/nodejs-ultimate-template/_coverage/lcov-report/)## ✨ Features
- [x] TypeScript
### ♻️ Lint and Test
- [x] Jest
- [x] ESLint
- [x] [eslint-config-standard-with-typescript](https://github.com/standard/eslint-config-standard-with-typescript)### 🔨 Development
- [x] Parcel
### 📝 Documentation
- [x] TypeDoc
- [x] Code coverage report by Jest### 🌌 Others
- [x] Automated testing, linting and generating documentation using GitHub Actions
- [x] Gitpod support## 🎨 App structure
field in `./package.json` | value
--- | ---
`source` | `src/index.ts`
`main` | `dist/index.js`
`types` | `dist/index.d.ts````console
$ tree src
src
├── index.ts
├── main.test.ts
└── main.ts0 directories, 3 files
```## 🎉 Get started (automatic if using Gitpod)
**Requires:**
- `tmux` (used by `npm run dev` and `npm run docs:serve`)
```sh
npx degit sakkke/nodejs-ultimate-template [project-name]
cd [project-name]
npm i
npm run dev
```### Stop `npm run dev`
1. Press `:killw`
1. Done!### Manually lint and test instead of `npm run dev`
#### Compile on change
```sh
npm run watch
```#### Run Jest in watch mode
```sh
npm run test:watch
```#### Run ESLint in watch mode
```sh
npm run lint:watch
```#### Run TypeDoc in watch mode
```sh
npm run docs:watch
```#### Serve `_docs`
```sh
npx serve _docs
```## 🔰 Checklist
- [ ] Check or update `./LICENSE`
- [ ] Update `name`, `version`, `description`, `author` in `./package.json`
- [ ] Change `env.PUBLISH_*_SCOPE` fields in `./.github/workflows/main.yml` (see [#Scope](#Scope))
- [ ] Set GitHub Pages source to `gh-pages` branch
- [ ] Update `./README.md`## 🚀 Deploy with GitHub Actions
### Overview
This template supports publishing to GitHub Package Registry and npm Registry with GitHub Actions.
To publish, you push the commit that starts with `:bookmark:`.
Also, you can use the commit that starts with `:bug:`, `:sparkles:` or `:boom:`.
They are incrementing `version` field in `./package.json` and publishing at the same time.Start with | What kind of increment
--- | ---
`:bug:` | It increments **patch** version (like `npm version patch`)
`:sparkles:` | It increments **minor** version (like `npm version minor`)
`:boom:` | It increments **major** version (like `npm version major`)### Important
You must need `secrets.PAT`.
This is GitHub Personal Access Token.### Scope
Registry | Default scope
--- | ---
GitHub Package Registry | `@sakkke`
npm Registry | `@0wv`To change, you must edit `env.PUBLISH_*_SCOPE` fields in `./.github/workflows/main.yml`.
### Example
#### First publish
```console
$ git commit --allow-empty -m ':bookmark: v0.1.0'
$ git tag v0.1.0
$ git push --follow-tags
```#### Publish package as v0.42.0
```console
$ git commit --allow-empty -m ':bookmark: v0.42.0'
$ git tag v0.42.0
$ git push --follow-tags
```#### Publish package with incrementing minor version
```console
$ git commit --allow-empty -m ':sparkles: release'
$ git push
```## 🍁 Related
- [Svelte Ultimate Template](https://github.com/sakkke/svelte-ultimate-template) - A starter template for Progressive Web App with Svelte + TypeScript + SugarSS
## 📄 License
Unlicense