欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談gulp創(chuàng)建完整的項(xiàng)目流程

 更新時(shí)間:2017年12月20日 08:37:22   作者:haonanElva  
本篇文章主要介紹了淺談gulp創(chuàng)建完整的項(xiàng)目流程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

gulp是前端開(kāi)發(fā)過(guò)程中自動(dòng)構(gòu)建項(xiàng)目的工具,相同作用的還有g(shù)runt。構(gòu)建工具依靠插件能夠自動(dòng)監(jiān)測(cè)文件變化以及完成js/sass/less/html/image/css/coffee等文件的語(yǔ)法檢查、合并、重命名、壓縮、格式化、瀏覽器自動(dòng)刷新、部署文件等功能。

所有的環(huán)境都是在 node 安裝好的基礎(chǔ)上執(zhí)行的。 node -v 查看node的安裝情況。npm -v查看npm 的安裝情況.

gulp自動(dòng)化構(gòu)建常用參數(shù)

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

2、dest 生成文件也就是寫(xiě)文件

3、watch 檢測(cè)文件

4、tesk 指定任務(wù)

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

gulp創(chuàng)建一個(gè)完整的項(xiàng)目的目錄結(jié)構(gòu)如下

解釋:

bower_components 這個(gè)文件下邊放的是 通過(guò)bower安裝的第三方的js等。

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

dist : 項(xiàng)目發(fā)布目錄,也是壓縮所有文件后的。

src :  項(xiàng)目源文件目錄,這里放置的都是源文件。

test : 這個(gè)是編寫(xiě)自動(dòng)化測(cè)試的

1、在終端進(jìn)入項(xiàng)目根目錄,安裝bower.

bower init 

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

bower install - - save angular

具體查看 bower 的使用方法。

2、安裝查看gulp,在項(xiàng)目根目錄下。

全局安裝gulp

npm install --global gulp

然后創(chuàng)建配置文件 

npm init    初始化并創(chuàng)建 package.json文件

npm install --save-dev gulp  將Node的配置環(huán)境裝進(jìn)配置文件中。

然后安裝需要的插件

npm install xxx —save-dev將文件自動(dòng)寫(xiě)進(jìn)配置文件中。

一般常用的創(chuàng)建整站的有這些,多個(gè)的話可以將插件以空格的形式分開(kāi)

復(fù)制代碼 代碼如下:

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

然后則是gulpfile.js配置文件的編寫(xiě)。具體為下

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

//定義目錄路徑
var app = {
 //源代碼,文件目錄
 srcPath: 'src/',
 //文件整合之后的目錄
 devPath: 'build/',
 //項(xiàng)目,發(fā)布目錄上產(chǎn)部署
 prdPath: 'dist/'
};

//通過(guò)bower安裝的插件,需要拷貝到 devPath prdPath中
gulp.task('lib',function(){
 // /**/* 讀取這個(gè)文件夾下邊的所有的文件或者文件夾
 gulp.src('bower_components/**/*')
 //讀取完整后進(jìn)行操作 西安拷貝到整合目錄 并重命名,在拷貝到生產(chǎn)目錄并重命名
 .pipe(gulp.dest(app.devPath + 'vendor'))
 .pipe(gulp.dest(app.prdPath + 'vendor'))
 .pipe($.connect.reload()); //文件更改后自動(dòng)變異 并執(zhí)行啟動(dòng)服務(wù)重新打開(kāi)瀏覽器
});
//將 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 然后拷貝過(guò)去
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());
});

//拷貝 壓縮 圖片 最后放到發(fā)布目錄下
gulp.task('image',function(){
 gulp.src(app.srcPath + 'image/**/*')
 //江源圖片放到整合目錄下,在壓縮放到生產(chǎn)目錄下
 .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']);

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

//編寫(xiě)服務(wù)
gulp.task('serve',['build'], function() {
 $.connect.server({
  //服務(wù)起來(lái)的入口
  root: [app.devPath],
  //文件更改后自動(dòng)刷新頁(yè)面
  livereload: true,
  //端口號(hào)
  port: 1234
 });
 // 在 命令工具中執(zhí)行 gulp serve 就相當(dāng)于是啟動(dòng)了服務(wù)
 //自動(dòng)打開(kāi)瀏覽器
 open('http://localhost:1234');
 //我們希望更改了文件,就自動(dòng)編譯,并且打包等然后打開(kāi)瀏覽器
 gulp.watch('bower_components/**/*' , ['lib']);
 //監(jiān)聽(tīng) script 下邊的 js 文件,并執(zhí)行 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']);
 //這樣文件變更了就會(huì)自動(dòng)構(gòu)建
});
//默認(rèn)執(zhí)行的任務(wù),直接 執(zhí)行 gulp 變行了。都編寫(xiě)完成后再終端 執(zhí)行 gulp 便可以了。
gulp.task('default', ['serve']);

這樣利用gulp創(chuàng)建一個(gè)完整的項(xiàng)目流程就結(jié)束了

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論