create-from-git
v1.0.8
Published
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.
Downloads
10
Readme
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.
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.
- ✅ Generate a new software project from scratch by using
git checkout
- ✅ Agnostic to programming language, frameworks etc. pp.
- ✅ Available as a simple API and simple to use CLI
- ✅ Just
5k
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
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.
- yarn:
yarn add create-from-git
- npm:
npm install create-from-git
import { createFromGit } from 'create-from-git'
try {
const statusReport = await createFromGit({
from: '[email protected]/jsheaven/template-for-libraries',
to: '.',
projectName: 'MyNewProject',
})
} catch (e) {
console.error('Scaffolding went wrong: ', e)
}
const { createFromGit } = require('create-from-git')
// same API like ESM variant