Skip to content
This repository has been archived by the owner. It is now read-only.
Programmable scaffolding generator
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.media
src
types
.babelrc
.editorconfig
.gitattributes
.gitignore
CHANGELOG.md
LICENSE
README.md
circle.yml
package.json
yarn.lock

README.md


NPM version NPM downloads donate

Overview

All along, I always hope to have a intelligent tool which can do some GENERRATE work for me. It should be friendly, so it should be as simple as possible to use. It should be flexible enough, so it should be given the ability to program and extend. At the same time, it should also have some self-management capabilities, so I do not have to consider the complexity of mulitple templates. With these considerations in mind, I made POZ.

POZ is a programmable scaffolding generator, you just need to write a POZ package which can help you quickly implement a scaffolding that reuses project templates like vue-cli.

POZ support package at:

  • Github repo POZ package
  • NPM package POZ package
  • local folder POZ package

POZ Package

A simple POZ package might have the following structure:

|____poz.js
|____README.md
|____template
  |____file-01
  |____file-02

You have to provide at least the poz.js file and template folder, where the template folder are used to store your project's template files, and the poz.js will be the entry file you configure and program, a simple poz.js as follows:

module.exports = function (context, poz) {
  return {
    prompts() {
      return {
        name: {
          message: "What's your name?",
          validate: v => v ? true : 'name cannot be empty'
        },
        lang: {
          message: 'Which language do you usually write?',
          type: 'list',
          choices: ['js', 'go', 'py'],
          default: 'js'
        }
      }
    },
    dest() {
      return {
        target: context.name,
        rename: {
          '{lang}': context.lang,
        }
      }
    }
  }
}

If your template folder is as follows:

my-first-poz
|____poz.js
|____README.md
|____template
  |____index.{lang}  # contents: 'My name is {{ name }}'

Then run poz ulivz/my-first-poz:

You can get this demo package at here. Check all the documents, please move DOCS.

Install

Install poz:

# Either globally
yarn global add poz
# Or locally (preferred)
yarn add poz --dev

or, If you use npm:

npm i poz -g
npm i poz --save-dev

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Prior art

poz wouldn't exist if it wasn't for excellent prior art, poz is inspired by these projects:

Author

poz © ULIVZ, Released under the MIT License.

Authored and maintained by ULIVZ with help from contributors (list).

v2js.com · GitHub @ULIVZ

You can’t perform that action at this time.