clerk-dev
CLI
The clerk-dev
CLI is a tool designed to simplify the process of iterating on packages within the clerk/javascript
repository within sample applications, such as customer reproductions. It allows for the installation of the monorepo versions of packages, and supports features such as hot module reloading for increased development velocity.
Installation
npm install --global @clerk/dev-cli
If you haven't already, install turbo
globally.
npm install --global turbo
First time setup
After installing @clerk/dev
globally, you'll need to initialise a configuration file and tell the CLI where to find your local copy of the clerk/javascript
repository.
-
Initialise the configuration file which will be located at ~/.config/clerk/dev.json
:
```shell
clerk-dev init
```
-
Navigate to your local clone of clerk/javascript
and run set-root
:
```shell
clerk-dev set-root
```
You're all set now to run the day-to-day commands 🎉
Adding instances & changing the configuration
During the first time setup a ~/.config/clerk/dev.json
file was created. Its object contains a activeInstance
and instances
key. You can add additional instances by adding a new key to the instances
object.
You can use the set-instance
command to switch between activeInstance
afterwards:
clerk-dev set-instance yourName
Per-Project Setup
In each project you'd like to use with the monorepo versions of Clerk packages, clerk-dev
can perform one-time framework setup such as installing the monorepo versions of packages and configuring the framework to use your Clerk keys.
To perform framework setup, run:
clerk-dev setup
If you aren't working on @clerk/clerk-js
, and do not want to customize the clerkJSUrl
, pass --no-js
.
clerk-dev setup --no-js
If you want to skip the installation of monorepo versions of packages, pass --skip-install
.
clerk-dev setup --skip-install
Running
Once your project has been configured to use the monorepo versions of your dependencies, you can start the watchers for each dependency by running:
clerk-dev watch
This will run the build
task for any @clerk/*
packages in the package.json
of the current working directory, including any of their dependencies.
If you do not want to start the watcher for @clerk/clerk-js
, you can instead pass --no-js
.
clerk-dev watch --no-js