create-from-git
Scaffolds a new project using
git checkout
and smart, in-file string replacements. Comes with an API and CLI:npx create-from-git
. Runs on Mac, Windows and Linux.
User Stories
-
As a developer of a product, I don't want to repeat myself again and again when I'm going to start a new project. I need a CLI that can copy over an arbitrary, ready-made project template from an arbitrary git repository, but don't clone it and also get the
.git
metadata, but check it out, and simply replace everything that is namedtemplateName
,template-name
,template_name
orTemplateName
with the name of my new project in all files and file names so that I don't have to do that manually again and again. -
As a developer of a framework, I need a library that can generate new projects from templates that I prepared, so that my users can use my CLI or the CLI of that tool to use my framework with ease by not starting from scratch.
Features
✅ Generate a new software project from scratch by usinggit checkout
✅ Agnostic to programming language, frameworks etc. pp.✅ Available as a simple API and simple to use CLI✅ Just5k
nano sized (ESM, gizpped)✅ Tree-shakable and side-effect free✅ Async from the ground up✅ Runs on Windows, Mac, Linux, CI tested✅ First class TypeScript support✅ Only JS Heaven maintained dependencies✅ 100% Unit Test coverage
Example usage (CLI)
npx create-from-git@latest --from https://github.com/jsheaven/template-for-libraries --name MyNewProject
You need at least version 18 of Node.js installed.
Example usage (API, as a library)
Setup
- yarn:
yarn add create-from-git
- npm:
npm install create-from-git
ESM
import { createFromGit } from 'create-from-git'
try {
const statusReport = await createFromGit({
from: 'git@github.com/jsheaven/template-for-libraries',
to: '.',
projectName: 'MyNewProject',
})
} catch (e) {
console.error('Scaffolding went wrong: ', e)
}
CommonJS
const { createFromGit } = require('create-from-git')
// same API like ESM variant