亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Angular.js項目中使用gulp實現自動化構建以及壓縮打包詳解

2019-11-19 16:02:29
字體:
來源:轉載
供稿:網友

gulp介紹

基于流的前端自動化構建工具,利用gulp可以提高前端開發效率,特別是在前后端分離的項目中。使用gulp能完成以下任務:

  • 壓縮html、css和js
  • 編譯less或sass等
  • 壓縮圖片
  • 啟動本地靜態服務器
  • 其他

目標

  • 一鍵安裝項目所有的依賴模塊
  • 一鍵安裝項目所有的依賴庫
  • 代碼檢查確保嚴格語法正確
  • 能將angularjs的html裝換成js模塊并且壓縮到js文件中
  • 將所有css文件合并壓縮
  • 將所有的js文件合并壓縮
  • 動態引入資源文件
  • 擁有開發環境和生產環境兩種打包方式

工具

  • npm基于node的包管理器
  • gulp基于node文件流的構建系統
  • bower是Web開發中的一個前端文件包管理器

實現過程

1、一鍵安裝項目所有的依賴模塊

創建項目使用命令(項目目錄下)

npm init//生成package.json{ "name": "leason", "version": "1.0.0", "description": "test for angular and gulp and unit testing", "main": "gulpfile.js", "dependencies": { }, "devDependencies": { }, "scripts": { "test": "echo /"Error: no test specified/" && exit 1" }, "repository": { }, "keywords": [ "leason" ], "author": "leason", "license": "ISC", "bugs": { },}

npm安裝依賴模塊采用命令

npm install xxx --save  //保存到dependencies(生產)npm install xxx --save-dev //保存到devDependencies(開發)

package.json中保存相應模塊,項目重新部署只需要命令

npm install //安裝package中所有模塊

一鍵安裝項目所有的依賴模塊使用bower管理器,用法和npm類似

2、語法檢查

npm install gulp-jshint --save-dev
//代碼語法檢查命令--gulp jshintvar jshint = require('gulp-jshint'); //代碼檢查gulp.task('jshint', function () { return gulp.src(paths.js) .pipe(jshint()) .pipe(jshint.reporter('default'));});

轉換html為js模塊

npm install gulp-angular-templatecache --save-dev
//合并html模板命令--gulp templatevar templateCache = require('gulp-angular-templatecache');gulp.task('template', function () { return gulp.src(['./templates/**/*.html','./templates/*.html']) .pipe(templateCache({module: 'templates'})) .pipe(gulp.dest('./js'))});

3、將所有css文件合并壓縮

npm install gulp-cssmin --save-dev
//合并壓縮css命令--gulp deployCSSvar cssmin = require('gulp-cssmin');gulp.task('deployCSS', function() { return gulp.src(paths.css) .pipe(cssmin()) .pipe(concat('all.css')) .pipe(gulp.dest('./build'));});

4、將所有js文件合并壓縮

npm install gulp-uglify --save-dev  //壓縮npm install gulp-concat --save-dev  //合并npm install gulp-sourcemapsy --save-dev //處理 JavaScript 時生成 SourceMapnpm install gulp-strip-debug --save-dev //去除打印
//測試生產兩種js壓縮命令--生產gulp js --prod測試gulp js --devgulp.task('js', function(type) { console.log(type); if (type == 'dev') { // dev return gulp.src(paths.js)  .pipe(concat('all.js'))  .pipe(gulp.dest('./build')); } else { // prod return gulp.src(paths.js)  .pipe(sourcemaps.init())  .pipe(stripDebug())  .pipe(uglify())  .pipe(concat('all.min.js'))  .pipe(sourcemaps.write())  .pipe(gulp.dest('./build')); }});

5、根據現有文件想index中引入

npm install gulp-inject --save-dev

index.html中標識寫入的位置如:

<!doctype html><html><head> <meta charset="utf-8"> <title ng-bind="headTitle"></title> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> <!-- bower:css --> <!-- endinject --> <!-- inject:css --> <link rel="stylesheet" href="build/all.css" rel="external nofollow" > <!-- endinject --> <!-- bower:js --> <!-- endinject --> <!-- inject:js --> <script src="build/all.min.js"></script> <!-- endinject --></head><body ng-app="starter"> <div ui-view></div></body></html>

開發環境

//dev資源引用命令--gulp devIndexgulp.task('devIndex', ['clean', 'jshint'], function () { // It's not necessary to read the files (will speed up things), we're only after their paths: return gulp.src('./index.html') .pipe(inject(gulp.src(paths.js, {read: false}), {relative: true})) .pipe(inject(gulp.src(paths.css, {read: false}), {relative: true})) // .pipe(inject(gulp.src(bowerFiles(), {read: false}), {name: 'bower', relative: true})) .pipe(gulp.dest('./'));});

生產環境

//生產環境資源引用命令--gulp deployIndexgulp.task('deployIndex', ['clean', 'jshint', 'template', 'js', 'deployCSS'], function () { // It's not necessary to read the files (will speed up things), we're only after their paths: return gulp.src('./index.html') .pipe(inject(gulp.src(paths.buildjs, {read: false}), {relative: true})) .pipe(inject(gulp.src(paths.buildcss, {read: false}), {relative: true})) // .pipe(inject(gulp.src(bowerFiles(), {read: false}), {name: 'bower', relative: true})) .pipe(gulp.dest('./'));});

注意點

代碼混淆過會使angular的依賴注入無法識別,所以代碼編寫的過程中要使用嚴格依賴的寫法。如

angularApp.config(['$routeProvider','$stateProvider','$urlRouterProvider',function($routeProvider,$stateProvider,$urlRouterProvider) { $stateProvider .state('sidebar', {  url: '/sidebar',  // abstract: true,  templateUrl: 'templates/sidebar.html',  controller: 'sidebarCtrl' }) $urlRouterProvider.otherwise('/sidebar/tab1');}]);

總結

以上就是這篇文章的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一网站免费视频| 神马久久桃色视频| 疯狂做受xxxx高潮欧美日本| 亚洲精品97久久| 国内精品视频在线| 国产一区二区香蕉| 久久精品久久久久久| 国产精品黄视频| 国产精品偷伦视频免费观看国产| 中文字幕亚洲欧美日韩在线不卡| 欧美黑人国产人伦爽爽爽| 欧美色xxxx| 成人激情在线观看| 中文字幕久热精品视频在线| 久久亚洲精品中文字幕冲田杏梨| 在线视频日韩精品| 亚洲综合日韩中文字幕v在线| 久久精品视频va| 精品国产一区av| 国产精品丝袜久久久久久不卡| 欧美美女操人视频| 色先锋久久影院av| 91精品久久久久久综合乱菊| 久久精品男人天堂| 国产欧美 在线欧美| 久久久精品在线观看| 亚洲第一网站免费视频| 欧美精品在线播放| 亚洲一品av免费观看| 久久成人人人人精品欧| 成人高h视频在线| 不卡中文字幕av| 欧美成人午夜激情在线| 国产在线视频2019最新视频| 美女国内精品自产拍在线播放| 亚洲国产精品久久精品怡红院| 久久九九有精品国产23| 亚洲成人网av| 欧美日韩高清在线观看| 91亚洲精品久久久| 国产精品第一区| 亚洲人成网站色ww在线| 欧美孕妇与黑人孕交| 亚洲第一网中文字幕| 亚洲精品久久在线| 国内精品视频一区| 亚洲18私人小影院| 亚洲精品美女免费| 日韩欧美在线国产| 国产精品入口日韩视频大尺度| 亚洲欧洲在线看| 欧美成人h版在线观看| 亚洲有声小说3d| 亚洲综合中文字幕在线观看| 久久精品久久久久久国产 免费| 中文字幕日韩在线观看| 中文日韩在线视频| 91精品国产成人www| 国产一区二区三区免费视频| 欧美精品国产精品日韩精品| 日韩一区二区三区xxxx| 91九色国产社区在线观看| 亚洲国产精品资源| 亚洲自拍偷拍色图| 69av成年福利视频| 91精品视频免费观看| 日韩免费观看在线观看| 欧美久久精品一级黑人c片| 日本人成精品视频在线| 热久久视久久精品18亚洲精品| 日韩亚洲欧美中文高清在线| 国产欧美va欧美va香蕉在| 日韩在线视频免费观看高清中文| 日本精品免费一区二区三区| 国产欧美一区二区三区在线| 日韩在线观看免费高清完整版| 色婷婷综合久久久久| 亚洲色图综合久久| 亚洲性视频网址| 欧美在线视频观看免费网站| 日韩**中文字幕毛片| 97成人精品视频在线观看| 久久精品欧美视频| 日韩h在线观看| 亚洲最大的免费| 精品国模在线视频| 国产精品男女猛烈高潮激情| 亚洲国产欧美在线成人app| 另类专区欧美制服同性| 国产精品一区二区久久精品| 欧美高跟鞋交xxxxxhd| 久久久久久噜噜噜久久久精品| 日韩免费观看在线观看| 亚洲精品白浆高清久久久久久| yellow中文字幕久久| 国产欧美精品久久久| 狠狠躁夜夜躁久久躁别揉| 欧美激情久久久久| 少妇av一区二区三区| 国产一区深夜福利| 57pao国产成人免费| 热久久美女精品天天吊色| 国产欧美日韩亚洲精品| 国产福利视频一区二区| 色综合导航网站| 欧洲日本亚洲国产区| 亚洲精品天天看| 国产日韩精品在线| 不卡在线观看电视剧完整版| 精品无人区太爽高潮在线播放| 91免费电影网站| 亚洲美女喷白浆| 欧美黑人国产人伦爽爽爽| 日本免费久久高清视频| 久久久久久国产三级电影| 91免费看视频.| 亚洲最大激情中文字幕| 欧美大成色www永久网站婷| 欧美视频免费在线观看| 国产亚洲欧美日韩美女| 91美女福利视频高清| 久久精品国产久精国产思思| 亚洲国语精品自产拍在线观看| 久久人体大胆视频| 国产精品久久久一区| 日韩视频免费观看| 91最新在线免费观看| 亚洲人成电影网站色| 亚洲黄色免费三级| 国产成人久久久| 国产91精品久久久久| 福利视频一区二区| 国产精品精品视频| 欧美午夜激情在线| 91av在线精品| 国产精品免费视频xxxx| 国产精品久久久久久久久久久不卡| 亚洲精品成人久久电影| 欧美一级电影免费在线观看| 亚洲美女精品成人在线视频| 久久夜色撩人精品| 亚洲天堂免费视频| 亚洲第一页中文字幕| 91精品久久久久久久久久另类| 精品视频在线播放色网色视频| 亚洲免费电影在线观看| 欧美激情国产精品| 欧美激情欧美激情在线五月| 亚洲综合中文字幕在线| 欧美精品18videosex性欧美| 国产99视频精品免视看7| 日韩一区二区三区在线播放| 亚洲欧美999| 日韩成人av一区| 欧美精品在线免费| 日韩av在线免播放器| 国产精品日韩欧美| 欧美洲成人男女午夜视频| 欧美激情喷水视频| 亚洲天堂成人在线视频| 91极品视频在线| 2019中文字幕在线观看| 亚洲成人免费网站| 欧美一级免费视频|