gulp創建完整的項目流程


所有的環境都是在 node 安裝好的基礎上執行的。 node -v 查看node的安裝情況。npm -v查看npm 的安裝情況.

gulp自動化構建常用參數

1、src 讀取文件或者文件夾

2、dest 生成文件也就是寫文件

3、watch 檢測文件

4、tesk 指定任務

5、pipe 用流的方式處理 gulp.

gulp創建一個完整的項目的目錄結構如下

解釋:

bower_components 這個文件下邊放的是 通過bower安裝的第三方的js等。

build  : 項目整合目錄,一般在這里整合所有的代碼,不壓縮。

dist : 項目發布目錄,也是壓縮所有文件后的。

src :  項目源文件目錄,這里放置的都是源文件。

test : 這個是編寫自動化測試的

 

1、在終端進入項目根目錄,安裝bower.

 bower init 

初始化Bower,生成bower.json文件,然后安裝需要的的插件以及第三方文件例如angular  執行

 bower install - - save angular

具體查看 bower 的使用方法。

2、安裝查看gulp,在項目根目錄下。

全局安裝gulp 
npm install --global gulp
然后創建配置文件 
 npm init    初始化並創建 package.json文件
npm install --save-dev gulp  將Node的配置環境裝進配置文件中。

 然后安裝需要的插件

npm install xxx —save-dev將文件自動寫進配置文件中。

 

一般常用的創建整站的有這些,多個的話可以將插件以空格的形式分開

npm install gulp-clean gulp-concat gulp-connect gulp-cssmin gulp-imagemin gulp-less gulp-load-plugins gulp-uglify open  -—save-dev

 

然后則gulpfile.js配置文件的編寫。具體為下

//引入gulp
var gulp = require('gulp');
//這樣的話 其他的模塊可以直接使用 $ 符號來引入
var $ = require('gulp-load-plugins')();
var open = require('open');

//定義目錄路徑
var app = {
    //源代碼,文件目錄
    srcPath: 'src/',
    //文件整合之后的目錄
    devPath: 'build/',
    //項目,發布目錄上產部署
    prdPath: 'dist/'
};

//通過bower安裝的插件,需要拷貝到 devPath prdPath中
gulp.task('lib',function(){
    //   /**/* 讀取這個文件夾下邊的所有的文件或者文件夾
    gulp.src('bower_components/**/*')
    //讀取完整后進行操作  西安拷貝到整合目錄 並重命名,在拷貝到生產目錄並重命名
    .pipe(gulp.dest(app.devPath + 'vendor'))
    .pipe(gulp.dest(app.prdPath + 'vendor'))
    .pipe($.connect.reload());  //文件更改后自動變異 並執行啟動服務重新打開瀏覽器
});
//將 html 拷貝到 devPath prdPath中
gulp.task('html',function(){
    gulp.src(app.srcPath + '**/*.html')
    .pipe(gulp.dest(app.devPath))
    .pipe(gulp.dest(app.prdPath))
    .pipe($.connect.reload());
});
//將 模擬的json 文件 拷貝到 devPath prdPath中
gulp.task('json',function(){
    gulp.src(app.srcPath + 'data/**/*.json')
    .pipe(gulp.dest(app.devPath + 'data'))
    .pipe(gulp.dest(app.prdPath + 'data'))
    .pipe($.connect.reload());
});

//將 index.less 文件 拷貝到 devPath prdPath中,index.less引入了所有的其他的less
gulp.task('less',function(){
    gulp.src(app.srcPath + 'style/index.less')
    .pipe($.less())
    .pipe(gulp.dest(app.devPath + 'css'))
    .pipe($.cssmin())
    .pipe(gulp.dest(app.prdPath + 'css'))
    .pipe($.connect.reload());
});
// 拷貝 js 文件  將所有的源文件中的js 文件整合成index.js 然后拷貝過去
gulp.task('script',function(){
    gulp.src(app.srcPath + 'script/**/*.js')
    .pipe($.concat('index.js'))
    .pipe(gulp.dest(app.devPath + 'js'))
    .pipe($.uglify())
    .pipe(gulp.dest(app.prdPath + 'js'))
    .pipe($.connect.reload());
});

//拷貝 壓縮 圖片 最后放到發布目錄下
gulp.task('image',function(){
    gulp.src(app.srcPath + 'image/**/*')
    //江源圖片放到整合目錄下,在壓縮放到生產目錄下
    .pipe(gulp.dest(app.devPath + 'image'))
    .pipe($.imagemin())
    .pipe(gulp.dest(app.prdPath + 'image'))
    .pipe($.connect.reload());
});

//總的方法
gulp.task('build',['image', 'script', 'less', 'json', 'html', 'lib']);

//清除舊文件,每次更新的時候
gulp.task('clean',function(){
    gulp.src([app.devPath,app.prdPath])
    .pipe($.clean());
})

//編寫服務
gulp.task('serve',['build'], function() {
    $.connect.server({
        //服務起來的入口
        root: [app.devPath],
        //文件更改后自動刷新頁面
        livereload: true,
        //端口號
        port: 1234
    });
    // 在 命令工具中執行 gulp serve  就相當於是啟動了服務
    //自動打開瀏覽器
    open('http://localhost:1234');
    //我們希望更改了文件,就自動編譯,並且打包等然后打開瀏覽器
    gulp.watch('bower_components/**/*' , ['lib']);
    //監聽 script 下邊的 js 文件,並執行 script 方法
    gulp.watch(app.srcPath + 'script/**/*.js', ['script']);
    gulp.watch(app.srcPath + '**/*.html', ['html']);
    gulp.watch(app.srcPath + 'data/**/*.json', ['json']);
    gulp.watch(app.srcPath + 'style/**/*.less', ['less']);
    gulp.watch(app.srcPath + 'image/**/*', ['image']);
    //這樣文件變更了就會自動構建
});


//默認執行的任務,直接 執行 gulp 變行了。都編寫完成后再終端 執行 gulp 便可以了。
gulp.task('default', ['serve']);

這樣利用gulp創建一個完整的項目流程就結束了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM