lerna-templater - v1.4.12
    Preparing search index...

    lerna-templater - v1.4.12

    npm version GitHub repository Publish Coverage


    lerna-templater

    Generates package from template for a Lerna Monorepo Project

    Install lerna-templater via npm:

    npm i -D lerna-templater
    
    import { TemplaterOptions, templater } from 'lerna-templater';

    /**
    * @param {string} cwd - The current working directory.
    * @param {TemplaterOptions} options - Configuration options for the templater.
    */
    templater(cwd, options);
    npx lerna-templater -n "example-newpackage" -d "Description for the new example package"
    

    Alternatively, add it to your package.json scripts:

    "scripts": {
    "create": "lerna-templater"
    }

    Then run:

    npm run create -- -n "example-newpackage" -d "Description for the new example package"
    

    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.

    • 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 main package.json.
    • packages (string, optional) - The relative path to the packages directory. Defaults to the first entry in lerna.json's packages array.
    • template (string, optional) - The relative path to the template directory. Defaults to __template__.

    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.

    • {{{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.
    .
    ├── __template__/
    │ ├── package.json.mustache
    │ └── README.md.mustache
    ├── packages/
    ├── lerna.json
    └── package.json
    {
    "name": "{{{scope}}}{{{name}}}",
    "description": "{{{description}}}",
    "version": "{{{version}}}",
    "repository": {
    "directory": "{{{repoDir}}}"
    }
    }
    # {{{name}}}
    
    {{{description}}}
    
    {
    "packages": [
    "packages/*"
    ],
    "version": "0.0.0"
    }
    {
    "name": "@examplescope/example-newpackage"
    }

    Running:

    npx lerna-templater -n "example-newpackage" -d "Description for the new example package" -s "@examplescope"
    

    Generates:

    • packages/example-newpackage/
    • package.json and README.md inside packages/example-newpackage
    {
    "name": "@examplescope/example-newpackage",
    "description": "Description for the new example package",
    "version": "0.0.0",
    "repository": {
    "directory": "packages/example-newpackage"
    }
    }
    # example-newpackage
    
    Description for the new example package
    

    Resources

    MIT License