windows从零使用gulp——修改静态文件名

1、前期准备:安装nodejs和npm,这个自己网上查找类似的资料

2、安装cnpm:npm install cnpm -g --registry=https://registry.npm.taobao.org

由于npm安装插件过程经常下载缓慢或出现异常,可以选择安装cnpm。以下过程就是按照cnpm来写,如果想用npm只要把cnpm替换成npm即可

3、全局安装gulp:cnpm install gulp -g。

查看是否正确安装:命令提示符执行gulp -v,出现版本号即为正确安装。

4、本地安装gulp插件:cd到项目根目录下

cnpm install --save-dev gulp gulp-clean gulp-minify-css gulp-rename gulp-rev gulp-rev-collector gulp-concat gulp-notify gulp-html-replace gulp-replace gulp-htmlmin gulp-livereload
把你用到的插件都安装进去,上面只是示例,可以添加或者删除插件

5、新建gulpfile.js文件

同样在根目录下新建gulpfile.js文件,以下就是实现修改静态文件名的gulpfile.js文件

var gulp = require('gulp'),                        //基础库
    clean = require('gulp-clean'),                 //清空文件夹
    minify = require('gulp-minify-css'),           //css压缩
    rename = require('gulp-rename'),               //文件重命名
    revContent = require('gulp-rev'),                     //更改版本名
    revCollector = require('gulp-rev-collector'),     //gulp-rev的插件,用于html文件更改引用路径
    concat = require('gulp-concat'),               //合并多个文件
    notify = require('gulp-notify'),               //提示
    htmlreplace = require('gulp-html-replace'),
    replace = require('gulp-replace'),
    htmlmin = require('gulp-htmlmin'),
    livereload = require('gulp-livereload');

gulp.task('clean',function(){
    return gulp.src('build',{ read : false})       //src的第二个参数的{read:false},是不读取文件,加快程序。
        .pipe(clean());
})
gulp.task('index',['clean'],function(){
    return gulp.src(['app*/index.html'])
        .pipe(rename(function(path){
            path.basename ='index';
            path.extname = ".html";
        }))
        .pipe(gulp.dest('build/'))
})
gulp.task('readyFile',['index'],function(cb){
    //修改文件名
    return gulp.src(['app*/css*/*.css','app*/js*/**/*.js'])
        .pipe(revContent())
        .pipe(gulp.dest('build/'))
        .pipe(revContent.manifest())
        .pipe(gulp.dest('build/rev'));
})

gulp.task('staticFile',['index'],function(cb){
    //不改名的可以放到此处
    return gulp.src(['app*/css*/fonts*/**','app*/lib*/**','app*/templates*/**','app*/img*/**','app*/json*/**'])
        .pipe(gulp.dest('build/'));
})
gulp.task('revFile',['readyFile'],function(){
    //把index.html引用到的文件进行替换
    return gulp.src(['build/rev/*.json','build/app*/*.html'])
        .pipe(revCollector({replaceReved: true}))//一定需要设置参数为true  否侧不会替换上一次的值
        .pipe(gulp.dest('build/'))
        .pipe(notify("success!!!"))
})
gulp.task('default',['staticFile','revFile']);//默认执行函数

6、运行gulp:执行gulp default或gulp将会调用default任务里的所有任务['staticFile','revFile']。


虽然说是原创,但是大部分是把各个地方的东西归纳到一起了。
主要参考的是以下文章,有兴趣的可以去原文查看。
http://www.ydcss.com/archives/18#lesson1
http://www.cnblogs.com/MonaSong/p/5842808.html
http://cnodejs.org/topic/5516736ce26684ed7ff21e0f
http://sentsin.com/web/861.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值