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

1.0.8 • Public • Published

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

  1. 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 named templateName, template-name, template_name or TemplateName 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.

  2. 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 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

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

Package Sidebar

Install

npm i create-from-git

Weekly Downloads

0

Version

1.0.8

License

MIT

Unpacked Size

237 kB

Total Files

34

Last publish

Collaborators

  • kyr0