前言在上一篇博客中,我介绍了一些关于Node脚手架的基础知识。这篇博客是基于上一篇。脚手架开发中遇到的问题,如:终端样式、交互问题、文件处理问题,通过分析Vue-cli2.9.2源码,解决相关问题。如果没有看过之前的博客,或者没有了解过Node.js脚手架的同学,推荐阅读之前的文章:如何实现一个简单的Node.js脚手架。如何自定义终端样式文终端chalk是一个日志样式库,可以调整终端上日志的样式。以下代码:constchalk=require('chalk');console.log(chalk.red('你好世界'));转换为特定样式:通过文档可以知道chalk可以支持文字颜色和背景颜色。如何在终端ora中实现加载图可以实现在终端加载的效果,与用户交互后即可使用。从官网上的例子,我们可以实现如下效果:如何在终端与用户交互在终端与用户交互,获取用户输入是一个很常见的需求。Inquirer是一个库,可以让我们通过终端与用户进行交互,比如下面这个例子:varinquirer=require('inquirer');inquirer.prompt([{type:'confirm',name:'OK',message:'你还好吗?',默认值:false}]).then(answers=>{console.log(answers);});结果内容是:文件相关有目录结构的模板文件怎么下载方便?最常见的File模板下载都是先上传到CDN,再以特定的格式下载到页面。但是,如果你想更优雅的下载文件,你可以通过download-git-repo下载你在Git上准备好的模板,这样在下载过程中可以保证文件目录和顺序,比如之前的它自己创建和检测文件夹要容易得多。如何处理下载的文件当你提供的模板不仅仅是一个纯文件,而是可以通过一定的参数编译得到不同的目标文件时,你可以通过metalsmith对文件进行操作。它是一个用来构建静态网站的类库,也可以用来处理文件。您可以通过编写一些处理回调函数来处理您的模板文件。如何编译模板语言如果你想要现成的模板编译工具,可以使用现成的,比如Handlebars。他可以像后端模板语言一样直接处理类HTML文件,我们可以看官方的例子。{{title}}
