2.0.1 • Published 5 years ago
carpent v2.0.1
🔨 Carpent
Bootstrap and configure any project using its template -- clone a repository, update data using variables, and more.
💡 Usage
If you want to quickly bootstrap a project, use npx:
npx carpent
Alternately, you can install the package globally from npm:
npm install --global carpentUse the CLI:
carpetOr, import and use the API:
import { carpet } from "carpet";
carpet({
repo: "https://github.com/AnandChowdhary/carpet",
// ...all configuration options here (see API Configuration)
});Setting up Carpent with your template
If you're building a template repository that others can use, you can add Carpent by creating a .carpentrc file in the root with the following schema:
{
"questions": [], // Configuration questions to ask
"deleteFiles": [], // List of files to delete
"beforeAll": [], // Scripts to run before process
"afterAll": [] // Scripts to run after process
}For example:
{
"deleteFiles": [".carpentrc"], // Delete the .carpentrc file
"questions": [
{
"name": "name", // `name` is required in each input
"type": "input", // Let users type an input response
"message": "Project name", // Ask them this question
"files": ["package.json"], // Update the package.json file
"jsonKey": "name" // Change the `name` key in package.json
}
],
"afterAll": ["echo 'Completed!'"] // Run this script at the end
}Each question under questions support the following properties:
| Property | Description |
|---|---|
name (required) | Internal name for question |
type (required) | One of Inquirer.js's question types |
message (required) | Question to ask the user |
default | Default value for this answer |
choices | Let users select one of these options |
files | Update these files |
jsonKey | Update this JSON key |
find | Find this value for replacing |
replace | Repace with this value |
API Configuration
You can specify a key-value pair as the API parameter with the following properties:
| Property | Description | Default |
|---|---|---|
repo | Git repository URL | Required |
dir | Path to directory to create | "carpent" |
license | License | MIT License |
licenseName | Full name for license | |
initializeNewRepo | Initialize new git repository | false |
👩💻 Development
Build TypeScript:
npm run buildRun unit tests and view coverage:
npm run test-without-reporting