最近主要在寫前端的模板類項目,因爲其中的webpack配置和引進數據注入ejs模板的方法大同小異,因此萌發出把該模板框架提取出來做爲一個經常使用的腳手架,也方便之後同事能夠進行復用。前端
以前在看《前端工程化:體系設計與實踐》裏面有提到過Yeoman構建腳手架,先入爲主,因此就用了Yeoman來搭建本身的腳手架node
在終端上運行node -v
,若是顯示node版本號,說明已有node環境webpack
npm install --global yo
複製代碼
驗證是否已經安裝git
yo --version
複製代碼
npm init 初始化項目,在package.json中增長:github
// files 名稱需和項目目錄文件名一致,好比這裏的app,項目初始化時便能找到app 下的內容
"files": [
"app"
],
"keywords": [
"yeoman-generator"
],
複製代碼
和依賴項web
"dependencies": {
"chalk": "^2.4.2",
"glob": "^7.1.3",
"lodash": "^4.17.11",
"yeoman-generator": "^3.2.0"
}
複製代碼
// 引進yeoman-generator
let Generator = require('yeoman-generator');
module.exports = class extends Generator {
// 安裝腳手架時的提問信息
prompting(){
var questions = [
{
type: 'input',
name: 'projectName',
message: '輸入項目名稱',
default: this.appname
},
{
type: 'input',
name: 'projectAuthor',
message: '項目開發者',
store: true,
default: ''
},{
type: 'input',
name: 'projectVersion',
message: '項目版本號',
default: '0.0.1'
}
]
return this.prompt(questions).then(
function(answers){
for(var item in answers){
answers.hasOwnProperty(item) && (this[item] = answers[item]);
}
}.bind(this));
}
writing(){
// 安裝腳手架時複製的內容塊的目錄
this.fs.copy(
this.templatePath('module/'),
this.destinationPath('')
);
}
}
複製代碼
目錄以下:(其中module爲你的整個腳手架內容)npm
npm link
複製代碼
新建新的項目workpalce,執行yo,若是看到Cms Module說明搭建腳手架成功~json
在npm上進行註冊前端工程化
在控制檯上執行npm login,能夠看到:bash
在generator-name項目於根目錄下執行npm public
發佈到npm上
注意:每次進行修改後上傳都須要在package.json上修改版本
通常來講,版本分紅三部門:a.b.c
yo --version
複製代碼
執行npm install -g generator-cms-module
就能夠把腳手架放在你本身的yo上
在項目上運行yo
,會出現能夠看到Cms Module的我的generator,選擇並按提示輸入信息就能夠把該腳手架的代碼create到項目裏