一,我们使用vue-cli 可以快速初始化vue.js的项目,官方提供了webpack,pwa,browserify-sipmple,等常用template

二、置知识
1,模板结构
template:该目录主要存放模板文件,初始化项目生成文件来源与此
meta.js/meta.json:用于描述初始化项目时命令行交互动作
2,Metalsmith
Metalsmith 在渲染文件担任的角色是gulp.js,可以通过添加一些插件对结构文件处理,如重命名,合并等
3,download-git-repo
使用vue-cli初始化项目使用该工具下载目标仓库
4,inquire.js
vue-cli库下载完成,使用inquire.js使用交互式命令对meta.js进行配置,


5,Handlebars.js
这里 vue-cli 选用的是 Handlebars.js —— 一个简单高效的语义化模板构建引擎。

三、meta.js 配置文件(Inquirer.js)
1,helpers:自定义 Handlebars.js 的辅助函数
2,prompts:基于 Inquirer.js 的命令行交互配置
3,filters:根据命令行交互的结果过滤将要渲染的项目文件
4,completeMessage:将模板渲染为项目后,输出一些提示信息,取值为字符串
5,metalsmith:配置 Metalsmith 插件,文件会像 gulp.js 中的 pipe 一样依次经过各个插件处理

四、结合本身项目总结

辅助函数可以接受若干个参数,最后一个参数options为辅助函数的钩子,调用options.fn(this)即输出该辅助函数运算结果为真时的内容,反之调用options.inverse(this)的内容

name与author:交互字段名称,可在后续条件交互或模板渲染时通过该字段读取到交互的的结果。 type:交互类型,有input,confirm,list,rawlist,expand,checkbox,password,editor八种类型 message:交互的提示信息 when:进行该条件交互的先决条件 default:默认值,当输入为空时默认此值 required:默认为false,该值是否为必填项 validate:输入验证函数 模板基本语法(Handlebars.js)

filters中键名是要控制输出的文件的路径,键名对应的值为命令行交互中得到的数据

将模板渲染为项目后输出一些提示信息,取值为字符串

2,手写一个loader

{
test: /\.txt$/,
use: {
loader: path.resolve(__dirname, './txt-loader.js'),
options: {
name: 'YOLO'
}
}
}

txt-loader.js的代码

module.exports = function (source) {
// const options = utils.getOptions(this)
source = source.replace(/\[name\]/g, 'ddd')
return `export default ${JSON.stringify({
content: source,
filename: 'dddd'
})}`
}

在app.js里面引用

import test from './a.txt'
console.log('cccc' + JSON.stringify(test))

定制团队自己的 Vue template的更多相关文章

  1. vue init深度定制团队自己的Vue template

    大家都知道,使用vue-cli可以快速的初始化一个基于Vue.js的项目,全局安装脚手架之后,你可以通过vue list命令看到官方提供的5个模板 vue list 当开发一个独立项目的时候,使用官方 ...

  2. 团队协作统一vue代码风格,vscode做vue项目时的一些配置

    1. 安装Vetur 扩展 主要是用于让vscode能识别vue文件,对vue代码进行高丽处理,并且它内置了一些代码格式化的设置 2. 安装ESLint 如果你的项目已经开启了eslint规范, 再有 ...

  3. 团队开发前端VUE项目代码规范

    团队开发前端VUE项目代码规范 2018年09月22日 20:18:11 我的小英短 阅读数 1658   一.规范目的: 统一编码风格,命名规范,注释要求,在团队协作中输出可读性强,易维护,风格一致 ...

  4. Python - 定制pattern的string模板(template) 具体解释

    定制pattern的string模板(template) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/28625179 ...

  5. vue template

    vue template <template> <div class="custom-class"> ... </div> </templ ...

  6. vue & template & v-else & v-for bug

    vue & template & v-else & v-for bug nested table bug https://codepen.io/xgqfrms/pen/wvaG ...

  7. vue init定制团队模板之meta.js/meta.json写法入门

    在上一篇文章中,我们提到了meta.js,这次我们详细了解一下meta.js里面各个模块的写法. 对于 meta.js/metajson 文件, 目前主要字段如下: prompts<Object ...

  8. vue init定制团队模板使用方法

    每次做项目都要自己搭建项目目录,或者换了公司就的重新搭建项目目录,是不是很麻烦呢?有没有想过一次性把项目目录搭建好,以后直接用呢?你首先想到的可能是复制自己原来的项目,然后删除.修改等等.然而有个更方 ...

  9. vue template标签

    在普通的html里面: template标签默认有个 display:none; 属性,并且其里面的内容是不可见的. 在vue里面: template标签类似一个隐藏的div,在审查元素的时候是找不到 ...

随机推荐

  1. 阿里云 Serverless 应用引擎(SAE)发布 v1.2.0,支持一键启停、NAS 存储、小规格实例等实用特性

    近日,阿里云 Serverless 应用引擎(SAE)发布 v1.2.0版本,新版本实现了以下新功能/新特性: 一键启停开发测试环境:企业开发测试环境一般晚上不常用,长期保有应用实例,闲置浪费很高.使 ...

  2. [CSP-S模拟测试]:简单的序列(DP)

    题目描述 从前有个括号序列$s$,满足$|s|=m$.你需要统计括号序列对$(p,q)$的数量. 其中$(p,q)$满足$|p|+|s|+|q|=n$,且$p+s+q$是一个合法的括号序列. 输入格式 ...

  3. [CSP-S模拟测试]:d(贪心+树状数组)

    题目传送门(内部题65) 输入格式 第一行,一个自然数$T$,代表数据组数.对于每组数据:第一行,一个正整数$n$,一个自然数$m$.接下来$n$行,每行两个正整数,$a_i,b_i$. 输出格式 对 ...

  4. windows传输文件到linux脚本

    安装pscp https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html cmd脚本 @echo off rem 拷贝的文件名称 se ...

  5. mysql_存储引擎层-innodb buffer pool

    buffer pool 是innodb存储引擎带的一个缓存池,查询数据时,首先从内存中查询 数据如果内存中存在的话直接返回. innodb buffer pool 和 qcache 的区别:Qcach ...

  6. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第5节 String类_10_练习:统计输入的字符串中

    char类型在发生数学运算的时候,可以提升为int类型 这就表示char在A到Z之间的

  7. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_01 File类_3_绝对路径和相对路径

  8. Application.Restore不起作用了

    http://www.myexception.cn/delphi/695243.html Application.Restore不起作用了窗体上只有一个Button和一个Timer(1秒计时)代码如下 ...

  9. Selenium WebDriver 数据驱动测试框架

    Selenium WebDriver 数据驱动测试框架,以QQ邮箱添加联系人为示例,测试框架结构如下图,详细内容请阅读吴晓华编著<Selenium WebDiver 实战宝典>: Obje ...

  10. 应用安全 - 渗透测试 - .net网站

    注入 注入 单引号检测 - 多数使用MSSQL数据库 常规注入绕过 "or''=' | 'or''=' 'or'='or' | 'or'='or'" 上传 加图片头GIF89A