前端工程化系列[05] Yeoman脚手架使用入门

Yeoman是一款流行的前端的脚手架工具。前端

脚手架工具能够用来快速的自动生成项目的必要文件和基础文件结构。Yeoman使用的内建命令为yo,同时它本身也是一个包管理工具和自动化任务工具,它基于特定的模板来初始化项目。node

考虑这样的开发场景:如今咱们须要开始一个全新的前端项目,一般须要先处理项目的文件结构,建立包括img、JavaScript、CSS 等静态资源的文件夹,若是团队开发,可能还须要添加 .gitignore忽略文件以及.editorconfig.eslintrcpackage.jsonGruntfile.js以及README.md等配置文件。git

若是你进行的多个前端项目,它们的技术选型差很少(好比都是:jQuery + grunt + Vue + Bootstrap),你会发现这些项目的总体文件结构是相同的。咱们在初始化项目的时候,固然能够从0开始搭建,也能够直接把旧项目的结构和相关文件拷贝过来,这其实都是些重复性没有技术含量的工做,而Yeoman 的做用就是减小这些重复性的工做,经过调用 Yeoman 生态圈中的现成的生成器(generator)便可自动生成项目初始化所须要的文件结构、配置文件等。因此简单来讲,Yeoman 是一个用于初始化项目的模版工具,用完就能够扔在一边了github

关于Yeoman的更多信息能够参考Yeoman官网Github托管仓库typescript

Yeoman的安装和使用

用于初始化项目的模板被称为生成器(generator), 在开源社区中已经有众多现成的generator能够供咱们使用(能够在生成器列表页使用关键字搜索)。在开始项目的时候,咱们能够先搜寻是否有匹配当前项目技术栈的生成器,若是有的话直接用就行了,若是找不到合适的generator,那么能够考虑本身来写一个Yeoman生成器,甚至经过很简单的方式咱们就能够把本身写的生成器发布出来造福社区。npm

这篇文章并不包含本身建立Yeoman生成器的内容,我只是想简单介绍下Yeoman的特征,以及如何使用Yeoman的生成器来初始化项目这个部分。

环境准备json

安装yeoman以前,你须要先安装如下环境gulp

  • Node.js 6或更高版本
  • npm 3或更高版本(一般安装Node的时候默认安装)
  • Git版本控制工具

点击NodeJS官网选择对应系统和版本根据提示完成NodeJS的安装,咱们能够经过在终端输入下面的命令来检查Node和npm的安装是否成功。app

$ node --version && npm --versiongrunt

有些 Node 版本可能安装的是旧版本的 npm,你能够经过如下命令来更新npm

$ npm install -g npm@latest

Git的安装过程请自行百度(OSX 默认安装),您能够经过如下命名来检查Git

$ git --version

安装Yeoman

经过下面的命令来安装Yeoman并检查是否安装成功,当前最新版本为2.0.1-g表示全局安装。

$ npm install -g yo
$ yo --version

generator-typeScript初始化项目示例

接下来咱们将选择一个生成器(这里以typescript为例)来演示初始化项目的操做,Yeoman将会根据对应的生成器替咱们建立好package.json和bower.json等文件,而后自动安装依赖。

① 新建 mytodo 文件夹,生成器生成的脚手架文件会放在这个文件夹中。

$ mkdir mytodo && cd mytodo

② 根据项目技术栈需求到官网列表搜索合适的生成器。
③ 经过npm来安装指定的generator。

$ npm install -g generator-typescript

④ typescript生成器安装完成后,使用yo命令来开始。

$ yo typescript

下面给出终端处理的具体细节:

wendingding:Blog wendingding$ mkdir mytodo && cd mytodo
wendingding:mytodo wendingding$ npm install -g generator-typescript
npm WARN deprecated npmconf@2.1.3: this package has been reintegrated into npm and is now out of date with respect to npm
 
> spawn-sync@1.0.15 postinstall /usr/local/lib/node_modules/generator-typescript/node_modules/spawn-sync
> node postinstall
 
> yo@1.8.5 postinstall /usr/local/lib/node_modules/generator-typescript/node_modules/yo
> yodoctor
 
Yeoman Doctor
Running sanity checks on your system
 
✔ Global configuration file is valid
✔ NODE_PATH matches the npm root
✔ Node.js version
✔ No .bowerrc file in home directory
✔ No .yo-rc.json file in home directory
✔ npm version
 
Everything looks all right!
+ generator-typescript@0.3.0
added 608 packages in 138.302s
wendingding:mytodo wendingding$ yo typescript
 
_-----_
| | ╭──────────────────────────╮
|--(o)--| │ Let's make some awesome │
`---------´ │ typescript project! │
( _´U`_ ) ╰──────────────────────────╯
/___A___\ /
| ~ |
__'.___.'__
´ ` |° ´ Y `
 
I will include JSHint and Editorconfig by default.
? First off, how would you like to name this project? wendingdingDemo
? Where should it be compiled to? app/build
? Where should your typescript go? app/src
create package.json
create app/src/index.ts
create app/src/app.ts
create tslint.json
create gulpfile.js
create test/test-greeting.js
create test/test-load.js
create README.md
create .editorconfig
create .jshintrc
 
 
I'm all done. Running npm install && bower install for you to install the required dependencies. If this fails, try running the command yourself.

按上面的步骤在终端中执行对应命令,咱们就能够获得一个基于基于typescript模板生成的初始化项目了,下面列出该项目的目录结构:

wendingding:mytodo wendingding$ tree
.
├── README.md
├── app
│ ├── build
│ └── src
│ ├── app.ts
│ └── index.ts
├── gulpfile.js
├── package.json
├── test
│ ├── test-greeting.js
│ └── test-load.js
└── tslint.json
 
4 directories, 8 files

最后,根据Yeoman终端中的提示经过$ npm install && bower install命令来安装必要的依赖便可。

相关文章
相关标签/搜索