lerna-templater v1.4.8
Installation
Install lerna-templater via npm:
npm i -D lerna-templaterUsage
Importing in a script
import { TemplaterOptions, templater } from 'lerna-templater';
/**
* @param {string} cwd - The current working directory.
* @param {TemplaterOptions} options - Configuration options for the templater.
*/
templater(cwd, options);Using as a CLI tool
npx lerna-templater -n "New Package Name" -d "Package Description"Alternatively, add it to your package.json scripts:
"scripts": {
"create": "lerna-templater"
}Then run:
npm run create -- -n "New Package Name" -d "Package Description"API
templater(cwd, options)
Generates a new package using a template. The package is created in the directory cwd/options.packages/options.name, using the template from cwd/options.template.
TemplaterOptions
name(string, required) - The name of the new package.description(string, optional) - A description for the package.scope(string, optional) - The package scope. Defaults to the scope in the mainpackage.json.packages(string, optional) - The relative path to the packages directory. Defaults to the first entry inlerna.json'spackagesarray.template(string, optional) - The relative path to the template directory. Defaults to__template__.
Templating with Mustache
lerna-templater uses Mustache.js for templating. Files with the .mustache extension in the template directory are rendered and saved without the extension. For example, package.json.mustache becomes package.json.
Available template variables
{{{name}}}- The package name.{{{description}}}- The package description.{{{scope}}}- The package scope.{{{packages}}}- The relative path to the packages directory.{{{template}}}- The relative path to the template directory.{{{version}}}- The package version.{{{repoDir}}}- The package's relative path in the repository.
Example
Directory structure
.
├── __template__/
│ ├── package.json.mustache
│ └── README.md.mustache
├── packages/
├── lerna.json
└── package.jsonTemplate files
__template__/package.json.mustache
{
"name": "{{{scope}}}{{{name}}}",
"description": "{{{description}}}",
"version": "{{{version}}}",
"repository": {
"directory": "{{{repoDir}}}"
}
}__template__/README.md.mustache
# {{{name}}}
{{{description}}}lerna.json
{
"packages": [
"packages/*"
],
"version": "0.0.0"
}package.json
{
"name": "@examplescope/example-monorepo"
}Output
Running:
npx lerna-templater -n "example-newpackage" -d "Description for the new example package"Generates:
packages/example-newpackage/package.jsonandREADME.mdinsidepackages/example-newpackage
package.json
{
"name": "@examplescope/example-newpackage",
"description": "Description for the new example package",
"version": "0.0.0",
"repository": {
"directory": "packages/example-newpackage"
}
}README.md
# example-newpackage
Description for the new example packageDocumentation
See the full documentation here.
9 months ago
11 months ago
9 months ago
9 months ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago