Gulp安装笔记(转)已经测试过

前言css

总的来讲,玩gulp的流程是这样的:node

安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配置gulpfile.js -> 运行任务git

说实在的,我并非很清楚gulp是干什么的,可是每一个人都说好,出于好奇心,忍不住就来研究一下,因此,搞清楚这个流程仍是颇有必要的。github

 

基本安装npm

安装gulp以前咱们须要安装nodejs的环境,检测可以正常使用npm后,咱们用npm对gulp进行一次全局安装json

npm install gulp -g

随便在哪一个路径下面均可以进行全局安装gulp

 

安装好了之后咱们创建一个test做为项目主路径,而后在cmd里cd到这个路径用npm对gulp进行依赖安装api

npm install gulp --save-dev

完过后发现项目路径下多了一个文件夹缓存

说明安装成功了sass

忍不住点进去会发现有一个package.json ,目前我暂时还不知道是干吗的,只不过看网上不少人说这玩意儿颇有用,先看看长什么样子老是好的。

 

 

 

插件安装

要使用gulp就必须使用gulp的插件,如下是我在网上搜索到的gulp插件:

sass的编译(gulp-ruby-sass)

自动添加css前缀(gulp-autoprefixer)

压缩css(gulp-minify-css)

js代码校验(gulp-jshint)

合并js文件(gulp-concat)

压缩js代码(gulp-uglify)

压缩图片(gulp-imagemin)

自动刷新页面(gulp-livereload)

图片缓存,只有图片替换了才压缩(gulp-cache)

更改提醒(gulp-notify)

清除文件(del)

 

至于怎么安装嘛,仍是要靠npm,能够一次性安装多个,module name能够无限累加。

npm install gulp-ruby-sass gulp-autoprefixer gulp-minify-css gulp-jshint gulp-concat gulp-uglify gulp-imagemin gulp-notify gulp-rename gulp-livereload gulp-cache gulp-less del --save-dev

 

 复制代码

npm install gulp-ruby-sass --save-dev
npm install gulp-autoprefixer --save-dev
npm install gulp-minify-css --save-dev
npm install gulp-jshint --save-dev
npm install gulp-concat --save-dev
npm install gulp-uglify --save-dev
npm install gulp-imagemin --save-dev
npm install gulp-notify --save-dev
npm install gulp-rename --save-dev
npm install gulp-livereload --save-dev
npm install gulp-cache --save-dev
npm install del  --save-dev
npm instal gulp-less --save-dev
复制代码

 

 

路径仍是在项目路径下

安装完成后会发如今项目下的gulp文件夹多出了许多插件的文件夹

 

 

加载插件

插件安装完成了之后就须要使用,使用以前必须先加载,咱们使用require的方法来加载。

在此以前咱们先要在项目的根路径下创建一个名为gulpfile.js的文件,别问我为何,我也不知道。

而后咱们能够在里面写入咱们引用插件的代码,最简单的代码以下:

var gulp = require('gulp');

gulp.task('default', function() {
  // 将你的默认的任务代码放在这
});

咱们把咱们刚才安装的插件全都加载进来

复制代码
var gulp = require('gulp'),
    sass = require('gulp-ruby-sass'),
    autoprefixer = require('gulp-autoprefixer'),
    minifycss = require('gulp-minify-css'),
    jshint = require('gulp-jshint'),
    uglify = require('gulp-uglify'),
    imagemin = require('gulp-imagemin'),
    rename = require('gulp-rename'),
    concat = require('gulp-concat'),
    notify = require('gulp-notify'),
    cache = require('gulp-cache'),
    livereload = require('gulp-livereload'),
    del = require('del');
复制代码

而后咱们在cmd里输入gulp命令,结果以下

这个名为default的task没有作任何事情,具体要作一些压缩之类的操做还得查阅更多的API。

若是想单独执行一个task,就直接输入"gulp <task name>",好比咱们想单独执行default这个task就能够这样

gulp default

 

到这里,咱们的gulp环境就部署好了。

 

 

附:gulp插件github地址或API地址

 

sass的编译(gulp-ruby-sass) https://github.com/sindresorhus/gulp-ruby-sass

自动添加css前缀(gulp-autoprefixer) https://github.com/Metrime/gulp-autoprefixer

压缩css(gulp-minify-css) https://github.com/murphydanger/gulp-minify-css

js代码校验(gulp-jshint) https://github.com/spalger/gulp-jshint

合并js文件(gulp-concat) https://github.com/contra/gulp-concat

压缩js代码(gulp-uglify) https://github.com/terinjokes/gulp-uglify

压缩图片(gulp-imagemin) https://github.com/sindresorhus/gulp-imagemin

自动刷新页面(gulp-livereload) https://github.com/vohof/gulp-livereload

图片缓存,只有图片替换了才压缩(gulp-cache) https://github.com/jgable/gulp-cache

更改提醒(gulp-notify) https://github.com/mikaelbr/gulp-notify

清除文件(del) https://www.npmjs.com/package/del

 

漏了一个地方,我加上:

在项目根目录下建立gulpfile.js文件,而后编写以下代码(最经常使用的代码),这些代码没什么好解释的,具体能够参考gulp的api

// 获取 uglify 模块(用于压缩 JS)
var uglify = require('gulp-uglify');
var cssUglify = require('gulp-minify-css');
var imageMin = require('gulp-imagemin');

// 压缩 js 文件
// 在命令行使用 gulp script 启动此任务
gulp.task('script', function() {
// 1. 找到文件
gulp.src('js/*.js')
// 2. 压缩文件
.pipe(uglify({ mangle: false }))
// 3. 另存压缩后的文件
.pipe(gulp.dest('dist/js'))
})

gulp.task('auto',function(){
gulp.watch('js/*.js',['script']);
gulp.watch('css/*.css', ['css']);
gulp.watch('images/*.*', ['image'])
})

gulp.task('css',function(){
gulp.src('css/*.css')
.pipe(cssUglify())
.pipe(gulp.dest('dist/css'))
})

gulp.task('image',function(){
gulp.src('images/*.*')
.pipe(imageMin({progressive: true}))
.pipe(gulp.dest('dist/images'))
})

gulp.task('default',['script','auto','css','image']
)

实际的项目确定没这么简单,想一想咱们通常不可能对某几个文件操做,应该是对一批文件操做,那样的涉及到文件匹配的问题了,暂时不展开了。

相关文章
相关标签/搜索