@idleberg/yeoman-generator
v0.1.4
Published
An opinionated drop-in replacement for Yeoman generators, using modern libraries
Maintainers
Readme
@idleberg/yeoman-generator
An opinionated drop-in replacement for Yeoman generators, using modern libraries.
Features
Installation 💿
npm i @idleberg/yeoman-generatorUsage 🚀
Example
import { Generator } from '@idleberg/yeoman-generator';
export default class extends Generator {
async prompting() {
this.clack.intro('Welcome to the generator!');
const answers = await this.prompt([
{
type: 'text',
name: 'name',
message: 'What is your name?',
placeholder: 'John Appleseed',
validate: (value) => {
if (value.length < 2) return 'Name must be at least 2 characters';
return undefined;
},
},
]);
this.answers = answers
}
async writing() {
this.fs.copyTpl(this.templatePath('index.eta'), this.destinationPath('index.html'), {
...this.answers,
});
}
}API ⚙️
[!IMPORTANT]
While these generators aim at API-compatibility, you still need to be aware of the suble differences in the ETA template engine. See ETA vs EJS for details.
Generator
For new generators, it's recommended to import the Generator class. Except for the prompts, it follows the default Yeoman generator API. Refer to the Clack docs on how to use prompts.
import { Generator } from '@idleberg/yeoman-generator';
export default class extends Generator {}GeneratorCompat
For existing generators, you might want to use GeneratorCompat class. It also uses Clack for prompts, but adheres to the default prompting API, Inquirer. Take note of the known limitations.
import { GeneratorCompat } from '@idleberg/yeoman-generator';
export default class extends GeneratorCompat {}Clack Prompts API
For your convenience, the full prompts API is exposed via the class property this.clack.
Related 👫
License ©️
This work is licensed under The MIT License.
