lazy-typer is a CLI tool designed to simplify the process of navigating and running scripts in a monorepo or multi-project workspace. It allows you to scan project folders, navigate to the desired project, and run package.json scripts with ease. Additionally, it supports custom package manager commands.
- Scan and select project folders (e.g.,
apps,libs) dynamically. - Run scripts from
package.jsonin any selected project. - Supports common package managers (
npm,yarn,pnpm). - Customizable commands for special workflows (e.g.,
nxor other tools). - Configurable project folder structure and package manager preferences.
You can install lazy-typer globally using npm:
npm install -g lazy-typerAfter installation, you can run the tool using the lzt command:
lztWhen you first run lzt, you will be asked to configure the tool:
-
Select Folders: Specify which folders to scan (e.g., apps, libs). Use a dot (.) to indicate the current directory.
-
Choose Package Manager: Select the package manager you use (npm, yarn, pnpm, or custom).
- If you select custom, you will be asked to provide:
- A custom package manager (e.g.,
nx,gulp). - A command format (e.g.,
run @company/{project}:{script}), where{project}and{script}will be dynamically replaced during script execution.
- A custom package manager (e.g.,
- If you select custom, you will be asked to provide:
Once configured, you can run lzt to:
-
Select a project: Choose a project from the scanned folders.
-
Select a script: Choose a script to run from the package.json file.
-
Run the script: The tool will execute the script using your selected package manager or custom command.
To clear the existing configuration, use the --clear flag:
lzt --clearThis will reset the saved folder paths and package manager settings, and prompt you to configure the tool again.
lzt
# Output
# 1. Select the project folder:
# - backend
# - frontend
# 2. Select the script to run:
# - build
# - startIf you use nx, you can configure the custom command as:
Custom Package Manager: nx
Command Format: run @company/{project}:{script}Then, when you run lzt, it will dynamically replace {project} and {script} and execute commands like:
nx run @company/backend:buildThis project is licensed under the MIT License.