Yeoman
一、安装
- 全局安装
Yeoman
shell
npm install yo -gnpm install yo -g- 安装对应的
generator
shell
npm install generator-node -gnpm install generator-node -g- 运行
gennerator
shell
yo nodeyo node使用步骤:
- 明确需求
- 找到合适的
generator- 安装
generator- 使用
yo运行generator`- 命令行交互输入信息
- 生成项目结构
二、自定义Generator
1.安装yeoman-generator
shell
npm install yeoman-generator -gnpm install yeoman-generator -g2.创建项目结构
text
- generators/
- app/
- templates/ //模板文件存放位置
- index.js //程序入口
- package.json- generators/
- app/
- templates/ //模板文件存放位置
- index.js //程序入口
- package.json- 编写入口文件
js
const Generator = require('yeoman-generator')
module .exports = class extends Generator{
//命令行交互
prompting(){
return this.prompt([
{
type: 'input',//类型 input:输入
name: 'name',//名称
message: 'Your project name',//提示
default: this.appname //默认值
}
])
.then(answers => {
//结果为一个对象,比如:{name: <input name>}
this.answers = answers
})
}
writing(){
const templates = [
'.browserslistrc',
'.editorconfig',
// .... 模板文件路径
'README.md'
]
templates.forEach(item => {
//将用户输入信息填入模板文件并复制到目标文件夹下
this.fs.copyTpl(
this.templatePath(item),
this.destinationPath(item),
this.answers
)
})
}
}const Generator = require('yeoman-generator')
module .exports = class extends Generator{
//命令行交互
prompting(){
return this.prompt([
{
type: 'input',//类型 input:输入
name: 'name',//名称
message: 'Your project name',//提示
default: this.appname //默认值
}
])
.then(answers => {
//结果为一个对象,比如:{name: <input name>}
this.answers = answers
})
}
writing(){
const templates = [
'.browserslistrc',
'.editorconfig',
// .... 模板文件路径
'README.md'
]
templates.forEach(item => {
//将用户输入信息填入模板文件并复制到目标文件夹下
this.fs.copyTpl(
this.templatePath(item),
this.destinationPath(item),
this.answers
)
})
}
}4.测试
shell
npm link
//新项目目录下
yo myselfnpm link
//新项目目录下
yo myself注意:
文件模板中使用
<%= name %>来设置值当与
index.html的icon中的冲突是,将其icon对应的位置改为<%%= BASE_URL %>