最近学了一下自己配置一个脚手架,虽然说现在各大主流框架也有非常成熟的脚手架工具了,但是假如我们每个项目都需要用到sass
,那么每次我们都需要重新配置,假如我们的package.json
里面就写好了常用的模块,每次下完脚手架后,直接npm i 是不是更方便些,出于这个原因,我用Yeoman
(作为一个官方文档它真的很难以言喻,传送地址:Yeoman)学了一下这个配置。
以下与其说是分享,倒不如说是我的个人笔记。
如有不足,烦请指示
个人vue脚手架配置
- 先准备平常我们常用的vue项目的文件
- 创建一个新文件夹generator-myVue
- 初始化目录
cd "project-dir"
npm init -y
npm i yeoman-generator
npm link
- 创建Yeoman目录格式 (入口文件)
- generators
-- app
--- index.js
--- templates
- 把常用的vue项目的文件移入templates中
- index.js文件写入
const Generator = require('yeoman-generator')
module.exports = class extends Generator {
prompting(){
return this.prompt([
{
type:'input',
name:'name',
message:'your project name',
default:this.appname
},
{
type: "confirm",
name: "cool",
message: "Would you like to enable the Cool feature?"
}
]).then(answer =>{
this.answer = answer
})
}
writing(){
const templates = [//个人脚手架中的文件
'babel.config.js',
'package.json',
'postcss.config.js',
'README.md',
'public/favicon.ico',
'public/index.html',
'src/App.vue',
'src/main.js',
'src/router.js',
'src/assets/logo.png',
'src/components/HelloWorld.vue',
'src/store/actions.js',
'src/store/getters.js',
'src/store/index.js',
'src/store/mutations.js',
'src/store/state.js',
'src/utils/request.js',
'src/views/About.vue',
'src/views/Home.vue'
]
for(const value of templates){
this.fs.copyTpl(this.templatePath(value),this.destinationPath(value),this.answer)
}
}
}
- 把文件中需要根据用户输入而更改的地方用模板方式写入
如markdown文件
# <%= name %>
<%= cool %>
## Project setup
- 生成个人vue脚手架
cd "空文件夹路径"
yo myVue
发布脚手架
- 注册一个npm账户
- 把代码推送到远程仓库后
执行下面的代码
npm login
//输入npm账户密码邮箱
npm publish
之后别人就能从npm仓库中下载你的脚手架啦