npm install -g yo

前置技能

Node and NPM

nodeJs就是基于谷歌v8引擎的一个javascript环境,使js不仅可以运行在浏览器端,也能在服务器端运行。

NPM(Node Package Manager),是nodeJs的包管理工具,其主要作用就是可以利用npm下载和管理库框架之类的开发工具。

NPM使用

NPM主要用的命令就是npm install,例如:

npm install -g yo

其中可以通过加入-g意味着全局安装。如果直接执行npm install不带其他任何参数,则意味着根据当前目录中package.json文件的要求安装工具。

package.json

{
"name":"xxx",
...
"dependencies":{},
"devDependencies": {
"grunt": "^0.4.5"
},
"engines":{
"node": ">=0.10.0"
},
"script":{
"test": "grunt test",
"install":""
}
...
}

如上就是一个简单的package.json文件,该文件采用json(JavaScript Object Notation)语法.
- name就是该package的名字;
- dependencies是该项目在生产环境中所依赖的包;
devDependencies就是该项目在开发环境中所依赖的包。当在该文件目录下键入npm install时,就会根据devDependencies下的内容下载所需工具。这里为空是因为虽然我们的项目是一个node项目,但是将来在开发的时候是一个站点,声明是没有意义的。如上例子中^0.4.5意味着下载以0.开头的最新版本——0.x.x。而如果版本号为~0.4.5,则意味着下载以0.4开头的最新版本——0.4.x;
- engines是指项目所需的node版本必须大于0.10.0;
- scrpit,指可以直接运行的脚本命令,在上面的例子我们输入npm test,就会执行grunt test命令

前端集成解决方案

很简单,所谓前端集成解决方案,就是一套包含框架和库,帮助开发者高效构建web应用程序的工作流。而如何实现前端集成解决方案呢,这就用到了下面的Yeoman,Bower和Grunt/Gulp,这些都是通过命令行实现的;也有可视化的工具,如FISSpirit

Yeoman

什么是Yeoman

Yeoman是现代webapp的脚手架工具。

Yeoman的作用

Yeoman可以方便的为你初始一个项目,包括生成项目文件,代码结构,包依赖,初始页面的例子,等等,他预制了大量的最佳实践——generators,并自动将其与工具整合起来供你使用。

generators

根据你项目所需,比如你的项目中要用angular,那么你可以到Yeoman的官网中,找到Discovering generators子页面,在里面找到angular的generators,找到适合你的最佳实践,其中带有八字胡的generators表示为Yeoman官方推出。除了最佳实践,Yeoman还是为我们统一了一些现阶段公认的例如代码校验,测试,压缩这些基本工作的流程。

使用Yeoman

npm install -g generator-angular
yo

首先用npm下载generator,这里下载的是angular
直接在控制台输入yo便会自动出现提示,根据提示便可以根据你需要的generator生成项目。

文件分析:

  • package.json

Yeoman构建的项目是基于node的项目,对于基于node的项目,首先看的是package.json文件,这里包含这个项目最直观的描述。上面已经说过了,这里就不再赘述。

  • Gruntfile.js

就是Grunt的配置文件

  • bower.json

bower的json文件,告诉bower该下载哪些配置包

  • .bowerrc

bower本身的配置文件,比如线上的框架组件拉下来要存放的目录,可以在这个文件里配置

  • .gitignore

指忽略不上传到git的文件

  • .gitattributes

git的配置文件

  • .editorconfig

第三方工具,指定编辑器如tab,代码缩进之类的操作

  • test文件

项目的自动化测试

  • app文件

存放我们项目的源文件,包括html,css,js,img之类

Bower

什么是Bower

Bower是web包管理器。

Bower的作用

一个web站点可以包括:框架,库以及一些公共部分等,而Bower就是用来跟踪管理这些。例如你有一个项目,他需要jQueryv1.2.1我们一般的做法是去官网下载指定的jquery版本(当然也可以用cdn),但是用了bower可以轻松的根据需要自动下载所需版本库。

使用Bower

利用bower下载jquery

bower instal jquery

首先bower会查找jquery是否在它的注册库里,然后找到对应的github地址,然后下载安装最新稳定版本。

如果组件没有在bower注册,那么可以尝试其他安装方式

  1. github短写安装 jquery/jquery
  2. 项目完整的github地址安装 https://github.com/jquery/jquery.git
  3. 通过url进行安装 http://libs.baidu.com/jquery/1.9.0/jquery.js

bower.json好处:

  • 版本仓库中只需要保存bower.json文件,其他成员把文件check到本地时,输入bower isntall,就会按照bower.json配置项下载包。

  • 不占用公共库空间

  • 保持公共库的最新稳定版本

生成bower.json配置文件

bower.init

根据提示一步步进行即可。

安装包并写入devDependencies

bower install angular --save-dev

不加dev就会写入dependencies

.bowerrc

directory为bower下载包的目录
proxy:代理如:”http//proxy.tencent.com:8080”
timeout:根据网速修改时间

Grunt

什么是Grunt

Gurnt是javascript的任务运行器。其含有庞大的生态圈,可以提供各种你所需要的插件。

Grunt的作用

对于需要重复执行的任务,例如压缩,编译,单元测试等,可以使用自动化工具来减少不必要的时间精力,而Grunt由于庞大的生态圈,可以在其找到各种你所需的自动化插件。

使用Grunt

安装:

npm install -g grunt-cli

gruntcli的作用是调用与gruntfile同一目录的grunt。

npm install grunt --save-dev
npm isntall grunt-contrib-jshint --save-dev

以上为一个简单的grunt以及插件下载

gruntfile结构

wrapper函数

所写代码必须放在此函数内

module.exports = function(grunt){

}

task,target,option,

target为task的目标,,而具体行为有option决定。

task

grunt [taskName]

默认会运行task下所有target。

grunt [taskName]:[targetName]

运行task下指定target

直接输入Grunt会执行default的task

task可以多个组合

一些常用task

<!-- 文件拷贝 -->
npm install grunt-contrib-copy --save-dev <!-- 文件删除 -->
npm install grunt-contrib-clean --save-dev

yeoman-bower-grunt之间的关系的更多相关文章

  1. 前端自动化学习笔记(一)——Yeoman,bower,Grunt的安装

    最近看视频学习了前端自动化的一些知识,确实让我大开眼界.感觉前端越来越神器了.同时跟着视频自己也尝试运用了一些工具去构建前端项目,但是中间遇见了很多坑,磕磕绊绊的才实现了一点功能,所以打算记录一下学习 ...

  2. yeoman bower grunt等安装

    grunt-beginner前端自动化工具:http://www.imooc.com/learn/30 grunt的安装 官方站点:http://gruntjs.com/ 安装指令: sudo npm ...

  3. node,Yeoman,Bower,Grunt的简介及安装

    作为前端,基本的html,css,js已经不太够用了,所以要学习一些前端自动化工具,来提高我们的生产力 1.NodeJS 先安装NodeJS,直接去官网,下载最新的版本,一定要最新的版本,这样会避免很 ...

  4. windows下前端开发工具遇到的问题总结(yeoman bower grunt)

    我用的是windows环境 一毕要环境: 1:nodejs 官网:https://nodejs.org/en/ 2:由于很多国外网站国内都访问不了(如果没有设置会出现很多奇怪的错误),所有必需FQ 我 ...

  5. Yeoman+Bower+gulp web前端自动化工作流程(初级教程)

    Yeoman包括了三个部分yo(脚手架工具).grunt/gulp(构建工具).bower(包管理器).听说gulp更容易上手,所以我就没用grunt而选的gulp 什么是开发流程? 在我看来一个完整 ...

  6. .NET Core与.NET Framework、Mono之间的关系

    随着微软的.NET开源的推进,现在在.NET的实现上有了三个.NET Framework,Mono和.NET Core.经常被问起Mono的稳定性怎么样,后续Mono的前景如何,要回答这个问题就需要搞 ...

  7. .NET Core 和 .NET Framework 之间的关系

    引用一段描述:Understanding the relationship between .NET Core and the .NET Framework. .NET Core and the .N ...

  8. 实体之间的关系【Entity Relationships】(EF基础系列篇9)

    Here, you will learn how entity framework manages the relationships between entities. Entity framewo ...

  9. php CGI、Fastcgi、PHP-FPM的详细介绍与之间的关系

    以下PHP CGI.Fastcgi.PHP-FPM的一些信息归纳和汇总----->详细介绍与之间的关系 一:CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的 web ...

  10. [转] valuestack,stackContext,ActionContext.之间的关系

    三者之间的关系如下图所示: ActionContext  一次Action调用都会创建一个ActionContext  调用:ActionContext context = ActionContext ...

随机推荐

  1. 学习markdown语法,易读易写,放2个教程地址

    http://wowubuntu.com/markdown/basic.html http://wowubuntu.com/markdown/basic.html

  2. 删除outlook2007账户

    开始-设置-控制面板-邮件-显示配置文件-删除-确定

  3. SLAM入门必收藏的资料

    搜集了各大网络,请教了SLAM大神,终于把SLAM的入门资料搜集全了!在分享资料前,我们先来看看,SLAM技术入门前需要具备哪些知识?首先学习SLAM需要会C和C++,网上很多代码还用了11标准的C+ ...

  4. AR资料汇总学习

    ARKit 从入门到精通 http://www.chinaar.com/ARKit/5210.html ARKit 框架的学习 http://blog.csdn.net/biangabiang/art ...

  5. shell-002:统计IP访问量

    统计IP访问量 #!/bin/bash # 统计IP的访问量 # 第一步首先得获取到日志的IP # 第二步给IP排序,这样相同的的IP就会在一起 sort # 第三步则给重复的IP统计数量,去重 un ...

  6. javascript的代码块

    a block of code 注意到这个问题是在看书的时候,中文版中出现“代码片段”这样的词语,于是就去翻看了英文版的原书.书中的用了a block of code,难道不应该翻译成代码块吗?(作为 ...

  7. 【算法笔记】B1021 个位数统计

    1021 个位数统计 (15 分) 给定一个 k 位整数 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​> ...

  8. CentOS7下php安装mcrypt扩展

    https://blog.csdn.net/skykingf/article/details/40185405 以下步骤均为本人实际操作,可能与你的安装方法有所区别,但我会尽量排除疑惑) 大致步骤(1 ...

  9. phantomjs的和谷歌浏览器的简单使用

    一.phantomjs的简单使用 ''' 什么是phantomJs:无界面的浏览器 ''' from selenium import webdriver from time import sleep ...

  10. Android系统概述

    一.Android的诞生 Android这一词最先出现在法国作家利尔亚当在1886年发表的科幻小说<未来夏娃>中,作者将外表像人类的机器起名为Android,这也就是Android小人名字 ...