前端自动化开发

# 前端开发自动化

### npm的使用

安装自动化工具

1. 项目初始化

```

npm init

```

帮助我们生成项目的包文件:package.json

这个文件可以通过npm init命令来自动生成,当然也可以手动创建该文件并填入相关信息

2. 填写项目依赖的包信息

> 在package.json的dependencies中填写当前项目需要用到的第三方包以及对应版本

> 使用 npm update 命令进行更新,那么npm自动会根据dependencies里面的值自动安装或更新对应包

3. 也可以在命令行中使用 npm install 命令去安装第三方的包

```

npm install 包名称

```

我们也可以使用

```

npm install 报名称 --save

```

> --save:下载安装包并把该包的信息(名称和版本)加入到当前项目的package.json文件的dependencies这个字段当中,方便管理和维护

一般情况下,我们会把这个依赖划分成两个部分,一个叫项目依赖,一个叫项目开发依赖

1. 项目依赖:项目的运行需要用到的

2. 项目开发依赖:项目的开发过程中要用到,但是项目运行的时候是不需要的

##### 项目依赖

```

npm install 包 --save

```

> 信息会保存到dependencies

##### 项目开发依赖

```

npm install 包 --save-dev

```

> 信息会保存到devDependencies

##### 全局安装

```

npm install 包 -g

```

### gulp

##### 安装

> 在全局下安装gulp,方便使用gulp命令

```

npm install -g gulp

```

##### 本地安装gulp

> 在项目中安装gulp,方便项目程序中使用

```

npm install gulp --save-dev

```

##### 创建gulpfile文件,并编写任务

1. 在当前项目目录下创建一个文件(通常这个文件为:gulpfile.js,当然也可以叫其他名字,gulpfile是默认的)

2. 当我们的命令行调用gulp命令的时候,gulp自动会去查找当前gulp命令所在的目录下的gulpfile文件,如果不存在则会报错,这个文件默认是gulpfile.js,我们也可以手动指定

##### 编写任务

1. 在gulpfile.js文件中,引入gulp

```

var gulp = require('gulp');

```

2. 通过gulp对象的task的方法定义一个任务

```

gulp.task('任务名称', 回调函数,任务要做的事情)

```

3. 运行任务

> 在命令行中调用命令

```

gulp 任务名称

```

##### 默认任务

只需要在gulpfile.js中定义一个任务名称为:default的任务,那么在运行的时候,gulp后面就可以不用填写任务名,直接调用就可以了

##### 前置任务-任务列表

我们可以在一个任务的第二个参数中填写一个数组,那么这个数组就是一个前置任务列表,当我们运行该任务的时候,需要先运行数组中的任务,然后执行当前任务

##### 编写具体任务

> gulp.src(globs[, options])

通过src这个命令,我们可以去读取指定的模式下的所有文件,globs就是一个模式列表,有点类似正则,类型: String 或 Array,返回值值一个流对象,可以理解为是当前匹配模式下读取到的文件的二进制数据,数据流对象下有一个方法:pipe(),通常称为管道

### gulp常用插件列表

- gulp-uglify : js压缩工具

- gulp-concat : js合并

- gulp-clean-css : css压缩

- gulp-concat-css : css合并

- gulp-css-spriter : css雪碧图

- gulp-less : less编译

### webpack

1. 安装

```

npm install webpack -g

```

2. 编译

webpack 入口文件 编译后的文件

```

webpack ./src/entry.js ./dist/entry.js

```

> 有时候这样写有点麻烦

3. 配置文件

在运行webpack命令的目录下,新建一个文件:webpack.config.js,每次运行webpack命令的时候,我们可以手动指定配置文件,webpack就会以该配置文件的内容进行运行,这个文件默认是webpack.config.js,也可以自定义

##### LOADER

> webpack加载器:LOADER

默认清下,webpack只能处理js模块,如果我们想处理其他的类型,比如css,图片等,我们需要通过loader去实现其他模块的加载

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容