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

/create-from-git/

    Package Sidebar

    Install

    npm i create-from-git

    Weekly Downloads

    3

    Version

    1.0.8

    License

    MIT

    Unpacked Size

    237 kB

    Total Files

    34

    Last publish

    Collaborators

    • kyr0