If you have an existing repository that you'd like to give the files from this repository, you can run npx create-typescript-app
in it to "migrate" its tooling to this template's.
npx create-typescript-app
The migration script will:
- Uninstall any known old packages that conflict with this template's tooling
- Delete configuration files used with those old packages
- Install any packages needed for this template's tooling
- Create or rewrite configuration files for the new tooling
- Run ESLint and Prettier auto-fixers to align formatting and style to the new settings
For example, if the repository previously using Jest for testing:
eslint-plugin-jest
,jest
, and other Jest-related packages will be uninstalled- Any Jest config file like
jest.config.js
will be deleted @vitest/eslint-plugin
,vitest
, and other Vitest-related packages will be installed- A
vitest.config.ts
file will be created
You'll then need to manually go through the following two steps to set up tooling on GitHub:
- Create two tokens in repository secrets (unless you chose to opt out of releases):
ACCESS_TOKEN
: A GitHub PAT with repo and workflow permissionsNPM_TOKEN
: An npm access token with Automation permissions
- Install two GitHub apps:
Your repository will then have an approximate copy of this template's tooling ready for you to review! Hooray! 🥳
Warning
Migration will override many files in your repository. You'll want to review each of the changes. There will almost certainly be some incorrect changes you'll need to fix.
create-typescript-app
will detect whether it's being run in an existing repository.
It also allows specifying --mode migrate
if that detection misinterprets the current directory:
npx create-typescript-app --mode migrate
You can explicitly provide some or all of the options the script would prompt for as command-line flags. See Options.md.
For example, running the migration script and skipping all GitHub-related APIs:
npx create-typescript-app --skip-all-contributors-api --skip-github-api
See Tooling.md for details on the tooling pieces and which bases they're included in.