init-roll
TypeScript icon, indicating that this package has built-in type declarations

1.3.0 • Public • Published

init-roll

Framework for project creation and migration. Power your create-xxx or @xxx/create-xxx packages.

Install

npm install --save-dev init-roll

Usage

import { init } from 'init-roll';

init('/path/to/template', '/path/to/project', {
  // template parameters
  name: 'foobar',
  description: 'This is foobar',
});

Write EJS templates

/path/to/template/src/index.ts.ejs will be compiled to /path/to/project/src/index.ts. You can use EJS template syntax.

export function <%= name %>() {
  //
}

You can also use EJS syntax in file names, for example /path/to/template/src/<%= name %>.ts.ejs.

Delete conflict files

If you created /path/to/template/webpack.config.js.delete file, then /path/to/project/webpack.config.js will be deleted when initializing. This is a convenient way to clean up conflict files and folders.

Merge JSON files

When deal with package.json, you can use /path/to/template/package.merge.json to merge template data with existing data. You can also use EJS template syntax in *.merge.json.

{
  <% if (esmOnly) { %>
  "type": "module",
  "main": "esm/index.js",
  <% } else { %>
  "main": "cjs/index.js",
  "module": "esm/index.js",
  <% } %>
  "bin": "cjs/<%= name %>.js"
}

Delete JSON keys

If you want to remove conflict keys in package.json file, create /path/to/template/package.delete.json, which contains keys you want to delete and values are null.

{
  "husky": null,
  "devDependencies": {
    "@babel/core": null,
    "webpack": null
  }
}

Readme

Keywords

Package Sidebar

Install

npm i init-roll

Weekly Downloads

112

Version

1.3.0

License

MIT

Unpacked Size

16.1 kB

Total Files

12

Last publish

Collaborators

  • guoyunhe