create-defuss
TypeScript icon, indicating that this package has built-in type declarations

1.0.6 • Public • Published

defuss

Project Scaffolder

create-defuss is a simple, lightweight CLI tool and Node.js library that enables Git sparse checkouts for subdirectories of GitHub repositories. Originally created to help jump-start projects using defuss templates, it can be used for any Git repository.

💡 Did you know? With just one command, you can checkout a specific subdirectory from a GitHub repository without cloning the entire project.


🚀 Getting Started

You're just one step away from checking out one of defuss simple example projects:

Create a new defuss + Astro project:

[‼️] Make sure git is installed on your computer!

npx create-defuss https://github.com/kyr0/defuss/tree/main/examples/with-astro-ts

This will download only the code from the with-astro-ts subdirectory into the (new) folder local folder.

Create a new defuss + Vite project:

[‼️] Make sure git is installed on your computer!

npx create-defuss https://github.com/kyr0/defuss/tree/main/examples/with-vite-ts

This will download only the code from the with-vite-ts subdirectory into the (new) folder local folder.

Downloading into a custom local folder

npx create-defuss https://github.com/kyr0/defuss/tree/main/examples/with-vite-ts ./my-custom-defuss-project

This will download only the code from the with-vite-ts subdirectory into the (new) folder local folder my-custom-defuss-project.

⚙️ API usage

You can also use create-defuss as library. It's super simple:

import { performSparseCheckout } from "create-defuss"

// pass in the Git url and desired destination folder (relative to the current working directory)
performSparseCheckout("git_url", "dest_folder")

🚀 How does defuss-vite work?

create-defuss is an NPM package with a bin entry in package.json. This, combined with a "shebang" line (#!/someshell) makes it executable using npx as a CLI (command line interface). It uses Git sparse checkout to efficiently download files from a specific subdirectory of a GitHub repository. It avoids downloading the entire repository, saving bandwidth and time. Also, monorepo maintainers can spare on creating extra "template" repositories for their example code.

Inside the project, you'll find the following relevant files:

/
├── src/cli.ts
├── src/git.ts
├── package.json

🧞 Commands

All commands are run from the root of the project, from a terminal:

Command Action
npm build Build a new version of the plugin.
npm publish Publish a new version of the defuss-vite integration package.

Come visit us on defuss island!

Package Sidebar

Install

npm i create-defuss

Weekly Downloads

5

Version

1.0.6

License

MIT

Unpacked Size

3.14 MB

Total Files

10

Last publish

Collaborators

  • kyr0