2.0.1 • Published 4 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 carpent
Use the CLI:
carpet
Or, 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 build
Run unit tests and view coverage:
npm run test-without-reporting