@hideoo/create-app
v4.3.0
Published
CLI utility to bootstrap a new project by creating a new app from scratch or update an existing app.
Downloads
416
Maintainers
Readme
Bootstrapping a new project always consists of the exact same steps like setting up TypeScript, installing dependencies, configuring a linter, adding various miscellaneous files and so on.
@hideoo/create-app
is a very opinionated CLI utility to help me quickly bootstrap a new project by either:
- creating a new project from scratch
- updating a new project generated with
pnpm create vite
orpnpm create next-app
Note: pnpm and the GitHub CLI are required to use this utility.
Usage
$ pnpm create @hideoo/app
And that's it, no options, no configuration and no extra tweaks needed, you are ready to go!
Features
Either create a new app from scratch (in the current directory or a new directory) or update an existing app.
Tools
- TypeScript with a configuration extending @hideoo/tsconfig
- ESLint with a flat configuration extending @hideoo/eslint-config
- Prettier with a configuration extending @hideoo/prettier-config and a pre-filled
.prettierignore
file
Package.json
- Pre-fill most common fields
- Add a
lint
script to lint and typecheck the code - Add a
format
script to ensure formatting - Enforce the package manager to the latest version of pnpm (reused in GitHub Actions)
- Enforce a minimum Node.js version (reused in GitHub Actions)
- Optionally add the configuration for publishing to npm
- Sort all well-known fields based on custom rules
Dependencies
- Automatically install all dependencies using
pnpm
- Use the latest version for all new and existing dependencies (versions are fetched from jsDelivr)
Miscellaneous
- Automatically run Prettier and ESLint with the
--fix
option on all files (this is particularly useful when updating an existing project to ensure all files match the proper code style) - Add various various pre-filled files like
.gitignore
,README.md
andLICENSE
Git
- Initialize a new Git repository if needed
- If a repository matching the name of the app exists on GitHub, update various GitHub repository settings
- Enable setting to automatically delete head branches after pull requests are merged
- Enable setting to always suggest updating pull request branches
- For public npm packages:
- Disable setting to allow merge commits
- Disable setting to allow rebase merging
- Enable setting to allow GitHub Actions to create and approve pull requests
- If a repository matching the name of the app exists on GitHub, enable the GitHub repository setting to automatically delete head branches after pull requests are merged
- Stage added or updated files during the creation of the app at the end of the process
GitHub Actions
- Create an autofix workflow to ensure formatting and using autofix.ci to automatically update pull requests if needed
- Create an integration workflow to lint, typecheck and test the project for every push on the main branch or pull request
- Add a customizable release workflow
- For public npm packages:
- Use Changesets to manage versioning and changelogs
- A webpage to create a new npm automation access token will be opened during the installation in order to automatically add the new token as a secret to the repository matching the name of the app on GitHub if it exists
- The released package(s) will be published with provenance to the npm registry
- For other projects:
- The release workflow can be triggered by bumping the version number in a commit with a tag matching the new version number (or just running
pnpx bumpp
) - A new release containing the changelog will be published on GitHub based on conventional commits
- The release workflow can be triggered by bumping the version number in a commit with a tag matching the new version number (or just running
- For public npm packages:
License
Licensed under the MIT License, Copyright © HiDeoo.
See LICENSE for more information.