yeoman的安裝和基礎(chǔ)使用
- 安裝yeoman
yarn global add yo
- 安裝對(duì)應(yīng)的generator
yarn add generator-node global
- 通過(guò)yo運(yùn)行g(shù)enerator
yo node(generator的名字)
自定義generator
- 創(chuàng)建一個(gè)generator-開(kāi)頭的文件夾,并且初始化
mkdir generator-test
cd generator-test
yarn init
- 安裝yeoman-generator模塊
yarn add yeoman-generator
- 在文件夾的generators/app/index.js中編寫(xiě)初始化操作
// 此文件作為 Generator 的核心入口
// 需要導(dǎo)出一個(gè)繼承自 Yeoman Generator 的類(lèi)型
// Yeoman Generator 在工作時(shí)會(huì)自動(dòng)調(diào)用我們?cè)诖祟?lèi)型中定義的一些生命周期方法
// 我們?cè)谶@些方法中可以通過(guò)調(diào)用父類(lèi)提供的一些工具方法實(shí)現(xiàn)一些功能,例如文件寫(xiě)入
const Generator = require('yeoman-generator')
module.exports = class extends Generator {
prompting () {
// Yeoman 在詢問(wèn)用戶環(huán)節(jié)會(huì)自動(dòng)調(diào)用此方法
// 在此方法中可以調(diào)用父類(lèi)的 prompt() 方法發(fā)出對(duì)用戶的命令行詢問(wèn)
return this.prompt([
{
type: 'input',
name: 'name',
message: 'Your project name',
default: this.appname // appname 為項(xiàng)目生成目錄名稱
}
])
.then(answers => {
// answers => { name: 'user input value' }
this.answers = answers
})
}
writing () {
// Yeoman 自動(dòng)在生成文件階段調(diào)用此方法
// // 我們這里嘗試往項(xiàng)目目錄中寫(xiě)入文件
// this.fs.write(
// this.destinationPath('temp.txt'),
// Math.random().toString()
// )
// -------------------------------------------------------
// // 通過(guò)模板方式寫(xiě)入文件到目標(biāo)目錄
// // 模板文件路徑
// const tmpl = this.templatePath('foo.txt')
// // 輸出目標(biāo)路徑
// const output = this.destinationPath('foo.txt')
// // 模板數(shù)據(jù)上下文
// const context = { title: 'Hello zce~', success: false }
// this.fs.copyTpl(tmpl, output, context)
// -------------------------------------------------------
// 模板文件路徑
const tmpl = this.templatePath('bar.html')
// 輸出目標(biāo)路徑
const output = this.destinationPath('bar.html')
// 模板數(shù)據(jù)上下文
const context = this.answers
this.fs.copyTpl(tmpl, output, context)
}
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。