Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/skarab42/skaffold
The best way to scaffold a project as I would do it myself
https://github.com/skarab42/skaffold
Last synced: 15 days ago
JSON representation
The best way to scaffold a project as I would do it myself
- Host: GitHub
- URL: https://github.com/skarab42/skaffold
- Owner: skarab42
- License: mit
- Created: 2022-08-02T09:53:01.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-13T08:07:47.000Z (10 months ago)
- Last Synced: 2024-05-21T11:29:18.726Z (6 months ago)
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@skarab/skaffold
- Size: 309 KB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# @skarab/skaffold
The best way to scaffold a project as I would do it myself.
## Features
- 📐 Setup the holy trinity: [Prettier](https://prettier.io/), [ESLint](https://eslint.org/), [TypeScript](https://www.typescriptlang.org/) with my [shared configuration](#my-shared-configurations).
- 🤖 Setup [GitHub Actions](https://github.com/features/actions) to run the trinity on `push` and `pull_request`.
- 🔎 Setup [lint-staged](https://github.com/okonet/lint-staged) and [simple-git-hooks](https://github.com/toplenboren/simple-git-hooks) to run Prettier and ESLint on staged files.
- ✅ Setup [Vitest](https://vitest.dev/) and create a minimal example in the `./test` directory.
- 📦 Setup [semantic-release](https://github.com/semantic-release/semantic-release) for automatic release on NPM via GitHub Actions (see [Publishing](#before-publishing)).## Installation
```bash
pnpm add --global @skarab/skaffold
```## Example
```bash
skaffold my-amazing-project
cd ./my-amazing-project
pnpm install
pnpm update # optional
```## Usage
```ts
Usage: skaffold [options] [command]The best way to scaffold a project as I would do it myself (Kappa).
Options:
-v, --version output the version number
-h, --help display help for commandCommands:
create [options] [name] create a new project
help [command] display help for command
```## Publishing
If you have selected the `release` feature when creating your project, please check the following points:
1. Make sure you add your [NPM_TOKEN](https://docs.npmjs.com/using-private-packages-in-a-ci-cd-workflow) as a secret in your [repo configuration](https://docs.github.com/en/actions/security-guides/encrypted-secrets).
2. Edit the `.github/workflows/CI.yml` file and uncomment the `release` job.
3. Edit the `package.json` and make your project public.```json
{
"private": false,
"publishConfig": {
"access": "public"
}
}
```> The next time you push on the main branch your package will be automatically published on NPM 🚀
## My shared configurations
- [@skarab/eslint-config](https://github.com/skarab42/eslint-config)
- [@skarab/prettier-config](https://github.com/skarab42/prettier-config)
- [@skarab/typescript-config](https://github.com/skarab42/typescript-config)