精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JS項目構建工具Grunt實踐:合并文件

開發 前端
Grunt 內置 concat(文件合并)、lint(代碼校驗) 和 min(代碼壓縮) 任務,在 grunt.js 文件配置好任務后,運行 grunt 命令就可以自動完成一系列的項目構建操作了

Grunt 是一個基于任務的 JavaScript 項目命令行構建工具,運行于 Node.js 平臺。Grunt 能夠從模板快速創建項目,合并、壓縮和校驗 CSS & JS 文件,運行單元測試以及啟動靜態服務器。上一篇文章《Grunt:基于任務的 JavaScript 項目構建工具》介紹了 Grunt 安裝和創建項目框架步驟,這篇文章介紹如何使用 Grunt 合并文件。

Grunt 內置 concat(文件合并)、lint(代碼校驗) 和 min(代碼壓縮) 任務,在 grunt.js 文件配置好任務后,運行 grunt 命令就可以自動完成一系列的項目構建操作了,如圖示:

對應的 Grunt 配置文件代碼如下:

  1. /*global module:false*/ 
  2. module.exports = function(grunt) { 
  3.   // Project configuration. 
  4.   grunt.initConfig({ 
  5.     pkg: '<json:GruntDemo.jquery.json>'
  6.     meta: { 
  7.       banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' + 
  8.         '<%= grunt.template.today("yyyy-mm-dd") %>\n' + 
  9.         '<%= pkg.homepage ? "* " + pkg.homepage + "\n" : "" %>' + 
  10.         '* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' + 
  11.         ' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */' 
  12.     }, 
  13.     concat: { 
  14.       dist: { 
  15.         src: ['<banner:meta.banner>''<file_strip_banner:src/<%= pkg.name %>.js>'], 
  16.         dest: 'dist/<%= pkg.name %>.js' 
  17.       } 
  18.     }, 
  19.     min: { 
  20.       dist: { 
  21.         src: ['<banner:meta.banner>''<config:concat.dist.dest>'], 
  22.         dest: 'dist/<%= pkg.name %>.min.js' 
  23.       } 
  24.     }, 
  25.     qunit: { 
  26.       files: ['test/**/*.html'
  27.     }, 
  28.     lint: { 
  29.       files: ['grunt.js''src/**/*.js''test/**/*.js'
  30.     }, 
  31.     watch: { 
  32.       files: '<config:lint.files>'
  33.       tasks: 'lint qunit' 
  34.     }, 
  35.     jshint: { 
  36.       options: { 
  37.         curly: true
  38.         eqeqeq: true
  39.         immed: true
  40.         latedef: true
  41.         newcap: true
  42.         noarg: true
  43.         sub: true
  44.         undef: true
  45.         boss: true
  46.         eqnull: true
  47.         browser: true 
  48.       }, 
  49.       globals: { 
  50.         jQuery: true 
  51.       } 
  52.     }, 
  53.     uglify: {} 
  54.   }); 
  55.   // Default task. 
  56.   grunt.registerTask('default''lint qunit concat min'); 
  57. }; 

這篇文章先介紹 concat 任務,后面幾個任務將會在隨后的文章陸續介紹。

Grunt 合并文件

Grunt 內置的 concat 任務用于合并一個或者多個文件(或者指令,例如<banner>指令)到一個文件。concat 任務的項目配置框架:

  1. // 項目配置 
  2. grunt.initConfig({ 
  3.   // 項目元數據,用于 <banner> 指令 
  4.   meta: {}, 
  5.   // 將要被合并的文件列表 
  6.   concat: {} 
  7. }); 

基本用法

把 src 目錄下的 intro.js、projject.js、outro.js 三個文件合并到 built.js 文件并存放在 dist 目錄,配置示例:

  1. grunt.initConfig({  
  2.   concat: {  
  3.     dist: {  
  4.       src: ['src/intro.js''src/project.js''src/outro.js'],  
  5.       dest: 'dist/built.js' 
  6.     }  
  7.   }  
  8. }); 

添加注釋

還可以通過 <banner> 指令在合并文件中添加注釋,例如包名、版本、生成時間等,示例代碼:

  1. grunt.initConfig({  
  2.   pkg: '<json:package.json>',  
  3.   meta: {  
  4.     banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +  
  5.       '<%= grunt.template.today("yyyy-mm-dd") %> */' 
  6.   },  
  7.   concat: {  
  8.     dist: {  
  9.       src: ['<banner>''<file_strip_banner:src/project.js>'],  
  10.       dest: 'dist/built.js' 
  11.     }  
  12.   }  
  13. }); 

多個構建目標

在實際項目中,往往需要根據模塊生成多個目標文件,例如基礎模塊和插件模板分開打包,配置示例:

  1. grunt.initConfig({  
  2.   concat: {  
  3.     basic: {  
  4.       src: ['src/main.js'],  
  5.       dest: 'dist/basic.js' 
  6.     },  
  7.     extras: {  
  8.       src: ['src/main.js''src/extras.js'],  
  9.       dest: 'dist/with_extras.js' 
  10.     }  
  11.   }  
  12. }); 

動態文件名

Grunt 合并任務還可以生成動態的文件名,

  1. grunt.initConfig({  
  2.   pkg: '<json:package.json>',  
  3.   dirs: {  
  4.     src: 'src/files',  
  5.     dest: 'dist/<%= pkg.name %>/<%= pkg.version %>' 
  6.   },  
  7.   concat: {  
  8.     basic: {  
  9.       src: ['<%= dirs.src %>/main.js'],  
  10.       dest: '<%= dirs.dest %>/basic.js' 
  11.     },  
  12.     extras: {  
  13.       src: ['<%= dirs.src %>/main.js''<%= dirs.src %>/extras.js'],  
  14.       dest: '<%= dirs.dest %>/with_extras.js' 
  15.     }  
  16.   }  
  17. }); 

配置好以后,運行下面的命令就可以進行文件合并操作了:

合并后的代碼示例如下:

  1. /*! Gruntdemo - v0.1.0 - 2013-01-22  
  2. * https://github.com/dreamsky/grunt-demo  
  3. * Copyright (c) 2013 Andy Li; Licensed MIT */ 
  4. (function($) {  
  5.   // Collection method.  
  6.   $.fn.awesome = function() {  
  7.     return this.each(function() {  
  8.       $(this).html('awesome');  
  9.     });  
  10.   };  
  11.   // Static method.  
  12.   $.awesome = function() {  
  13.     return 'awesome';  
  14.   };  
  15.    
  16.   // Custom selector.  
  17.   $.expr[':'].awesome = function(elem) {  
  18.     return elem.textContent.indexOf('awesome') >= 0;  
  19.   };  
  20. }(jQuery)); 

原文鏈接:http://www.cnblogs.com/lhb25/archive/2013/01/31/grunt-for-javascript-project-b.html

 

責任編輯:張偉 來源: 博客園
相關推薦

2020-09-07 14:40:20

Vue.js構建工具前端

2011-12-30 09:23:25

JavaPhing

2023-03-15 23:59:13

前端構建工具

2024-06-04 22:04:39

2023-08-22 10:13:53

模塊工具JavaScrip

2021-11-10 09:30:11

Python工具命令

2022-08-12 07:56:41

Python項目管理構建工具

2021-08-30 06:27:21

工具容器Docker

2011-12-07 10:56:29

ApacheMakeJava

2021-05-25 16:34:06

JavaScript前端

2021-05-31 17:37:26

ViteReactesbuild

2010-02-03 15:09:13

Python 構建工具

2022-05-16 09:14:28

前端構建工具

2021-06-05 18:01:05

工具Rollup前端

2020-04-23 08:55:01

LinuxGradle工具

2025-03-26 01:00:00

2024-07-02 10:48:04

語言項目配置

2022-02-23 10:48:52

TodoList應用項目Strve開發

2022-08-26 13:56:30

模塊JavaScript

2016-01-31 09:47:13

Java程序員構建工具
點贊
收藏

51CTO技術棧公眾號

国产黄a三级三级三级av在线看| 青青草原在线免费观看| 乱馆动漫1~6集在线观看| 白白色 亚洲乱淫| 国产成人aa精品一区在线播放| 亚洲精品午夜视频| 日韩综合av| 午夜久久久久久久久| 日本一区美女| 国产理论视频在线观看| 国产色综合网| 久久精品99久久香蕉国产色戒| 久久黄色一级视频| av电影一区| 一区二区三区在线观看国产| 欧美激情www| xxxx国产精品| 日韩精品国产欧美| 欧美激情第99页| 日本污视频网站| 国产一区二区三区亚洲| 欧美日韩国产乱码电影| 99在线免费视频观看| 岛国视频免费在线观看| 国产精品18久久久久久久久久久久 | 国产又粗又猛又爽又黄的视频一| 在线播放一区| 日韩小视频在线观看| 99re久久精品国产| 视频在线亚洲| 欧美三区在线视频| 成年人视频在线免费| 国产丝袜在线播放| 日韩一区日韩二区| 日韩中文字幕av在线| 天堂在线视频免费| 国产高清成人在线| 国产欧美精品在线| 久久永久免费视频| 性感少妇一区| 97在线观看免费| 久久久www成人免费毛片| 亚洲91中文字幕无线码三区| 一区二区三区动漫| 欧洲美一区二区三区亚洲| 久久aimee| 精品剧情v国产在线观看在线| av中文字幕网址| 久久69成人| 欧美体内she精视频| 免费激情视频在线观看| 人妻换人妻a片爽麻豆| 色婷婷国产精品免| 亚洲理论电影片| 亚洲高清av在线| 日韩高清一二三区| 91国内精品| 日韩精品中文字幕在线一区| 色网站在线视频| av在线精品| 7777精品伊人久久久大香线蕉最新版| 狠狠躁狠狠躁视频专区| 丰满少妇一区| 欧美日韩国产综合一区二区| 熟女少妇精品一区二区| 九九热线视频只有这里最精品| 欧美性xxxx极品hd满灌| 免费在线观看毛片网站| 快播电影网址老女人久久| 日韩欧美在线国产| 宅男噜噜噜66国产免费观看| 97欧美成人| 欧美三级日韩在线| 中文字幕在线视频精品| 国内精品视频| 欧美成人国产一区二区| 在线观看国产免费视频| 色天天色综合| 中文字幕亚洲无线码在线一区| 91狠狠综合久久久久久| 亚洲精品91| 欧美日韩第一页| 日本a级片在线观看| 特黄特黄一级片| 精品国产第一福利网站| 欧美色图天堂网| 日本一二三区在线| 久久国产精品免费精品3p| 日韩精品免费看| 日本一卡二卡在线播放| 亚洲精品网址| 久久久免费精品| 黄色片视频免费| 狠狠色丁香婷综合久久| 国产精品一国产精品最新章节| 四虎精品在线| 国产精品久久久久影视| 欧美视频在线观看视频| 国产欧美自拍| 欧美va日韩va| 亚洲成人黄色av| 欧美福利专区| 日本亚洲欧洲色| 国产精品久久影视| 97久久人人超碰| 亚洲精品中文字幕乱码三区不卡| av毛片在线免费| 一本在线高清不卡dvd| 波多野结衣在线免费观看| 网友自拍区视频精品| 久久这里只有精品99| 国产超碰人人爽人人做人人爱| 久久er99热精品一区二区| 国产一区再线| 麻豆传媒视频在线观看免费| 精品久久久一区| 亚洲色图欧美自拍| 欧美女王vk| 97国产在线观看| 国产乱码精品一区二三区蜜臂| 99国产精品99久久久久久| gogogo免费高清日本写真| 毛片免费看不卡网站| 欧美大胆一级视频| 一级黄色片日本| 久久综合五月| 国产欧美日本在线| 26uuu亚洲电影在线观看| 欧美性猛交xxxx黑人交| 国产精品久久久久久久无码| 欧美黄色一区| 国产日韩在线观看av| 男男电影完整版在线观看| 亚洲一区二区欧美日韩| 日韩成人av免费| 欧美日韩国产高清电影| 热门国产精品亚洲第一区在线| 国模无码一区二区三区| 亚洲欧美日韩久久精品| 黄大色黄女片18第一次| 精品美女在线视频| 国产精品aaa| 你懂的在线免费观看| 亚洲第一在线综合网站| 成人啪啪18免费游戏链接| 亚洲欧美网站在线观看| 91精品一区二区| 欧美日韩在线看片| 欧美日韩一区二区三区不卡| 一级黄色片网址| 久久综合亚州| 日韩欧美亚洲精品| 影音成人av| 最近2019中文字幕在线高清| 亚洲天堂777| 国产精品久久久久久亚洲伦| 伊人国产在线视频| 999久久久91| 91久久国产精品91久久性色| 国产写真视频在线观看| 日韩欧美综合一区| 久久久久久福利| 高清shemale亚洲人妖| 亚洲国产一二三精品无码| 97久久综合精品久久久综合| 日韩中文字幕精品| www.黄色小说.com| 偷拍日韩校园综合在线| 色欲av无码一区二区三区| 麻豆久久婷婷| 亚洲综合视频一区| 精品久久国产一区| 欧美激情一区二区三区高清视频| 好吊色在线观看| 日韩欧美国产激情| 夫妇露脸对白88av| 国产精品一区二区在线观看不卡 | 欧美重口另类videos人妖| 桃花色综合影院| 91福利在线观看| 伊人在线视频观看| 成人av在线观| 女性隐私黄www网站视频| 日韩电影免费网址| www日韩av| 波多野结衣亚洲一二三| 主播福利视频一区| 成人午夜免费福利| 在线影院国内精品| 久久久久久久久久一区二区三区| 2020国产精品| 国产无色aaa| 亚洲精品影视| 亚洲黄色成人久久久| 91成人噜噜噜在线播放| 国产精品69精品一区二区三区| 国产一区久久精品| 亚洲人成电影在线播放| 国产欧美一级片| 黑人欧美xxxx| 天天看片中文字幕| 久久免费看少妇高潮| 性生活在线视频| 久久久久久黄| 毛片av在线播放| 国模吧精品视频| 国产精品乱码视频| 国外成人福利视频| 欧美在线欧美在线| 在线heyzo| 中文字幕在线成人| 丝袜视频国产在线播放| 日韩一区二区三区四区| 久久久国产免费| 午夜激情综合网| 欧美色图亚洲视频| 国产精品天干天干在线综合| 日本黄色动态图| 国产美女久久久久| 黄色手机在线视频| 久久精品导航| 人妻少妇精品久久| 欧美福利电影在线观看| 一区二区三区欧美在线| 欧美日韩123| 国产亚洲福利社区| 7777精品| 超碰97在线资源| 成人网av.com/| 国产精品激情av电影在线观看 | 清纯唯美综合亚洲| 久久综合给合久久狠狠色| 东京久久高清| 波多野结衣精品久久| 中文字幕综合| 国产美女直播视频一区| 亚洲爱爱视频| 国产精品久久久久久久久久三级| 波多视频一区| 日本中文字幕久久看| 涩涩涩在线视频| 91干在线观看| 黄色激情在线播放| 久久久噜噜噜久久中文字免| 国产福利在线免费观看| 欧美国产日本在线| 色爱综合区网| 欧美人交a欧美精品| 18+激情视频在线| 美女啪啪无遮挡免费久久网站| 黄色网址免费在线观看| 日韩一区二区久久久| 人人干在线视频| 日韩最新在线视频| 黄色成人在线观看| 九九久久国产精品| 俺来也官网欧美久久精品| 国模吧一区二区三区| 欧美xxxhd| 日韩美女在线播放| xxxxx.日韩| 91免费视频网站| 欧美videos粗暴| 亚洲xxx自由成熟| 97一区二区国产好的精华液| 国产日产精品一区二区三区四区| 台湾佬综合网| 日韩和欧美的一区二区| 欧美三级美国一级| 一区二区三区四区在线视频| 亚洲九九视频| 国产 日韩 欧美在线| 另类图片国产| 欧美伦理片在线观看| 国产一区日韩二区欧美三区| 被黑人猛躁10次高潮视频| 不卡一区二区三区四区| 亚洲天堂视频一区| 中文字幕日本不卡| 日本熟女一区二区| 色婷婷精品久久二区二区蜜臂av| 中文字幕在线观看第二页| 日韩视频一区二区三区在线播放| 免费a级片在线观看| 亚洲色图15p| 国产黄色在线免费观看| 97精品一区二区视频在线观看| 欧美一区国产| 91久久久一线二线三线品牌| 欧美巨大xxxx| 自拍偷拍一区二区三区| 99视频精品| 国产精品自在自线| 91捆绑美女网站| 久久av红桃一区二区禁漫| 亚洲成a人v欧美综合天堂下载| 天天综合久久综合| 欧美大片在线观看一区| av中文字幕一区二区三区| 欧美大片va欧美在线播放| 中文在线8资源库| 亚洲一区二区三区毛片| 亚洲黄页网站| 粉嫩av一区二区三区天美传媒| 日韩精品色哟哟| 精品少妇人妻av一区二区三区| 国产精品丝袜久久久久久app| 国产亚洲小视频| 欧美蜜桃一区二区三区| 视频二区在线| 色综合视频一区中文字幕| 999国产精品亚洲77777| 精品一区二区三区自拍图片区| 亚洲草久电影| 美女网站视频黄色| 91在线国产观看| 免费在线观看国产精品| 欧美日韩一卡二卡三卡 | 亚洲男人天堂视频| 色a资源在线| 亚洲一区二区三区在线免费观看| 国内精品久久久久久99蜜桃| 国产二区视频在线| 国产精品亚洲视频| 99精品中文字幕| 色婷婷av一区| 日夜干在线视频| 国模吧一区二区| 在线一区二区三区视频| 少妇熟女一区二区| 裸体在线国模精品偷拍| mm131丰满少妇人体欣赏图| 欧美日韩国产精品一区二区三区四区| 99久久免费国产精精品| 欧美成人四级hd版| 欧美黄色一级| 无码毛片aaa在线| 国产中文字幕精品| 黄色一级大片在线免费观看| 欧美日韩综合不卡| fc2在线中文字幕| 日韩女优人人人人射在线视频| 外国成人在线视频| 白嫩少妇丰满一区二区| 久久久久久亚洲综合影院红桃| www.毛片.com| 亚洲欧美综合区自拍另类| 亚洲黄色中文字幕| 青青成人在线| 日韩精品欧美精品| 久久一级免费视频| 欧美精品欧美精品系列| 国产在线观看av| 147欧美人体大胆444| 欧美一区二区| 韩国三级与黑人| 一区二区高清视频在线观看| 不卡视频免费在线观看| 欧美激情在线观看| 国产极品模特精品一二| 极品美女扒开粉嫩小泬| 久久综合五月天婷婷伊人| 免费黄色av片| 最近中文字幕日韩精品| 四虎成人精品一区二区免费网站| 在线免费观看成人| 国产在线国偷精品免费看| 久久久久无码国产精品| 亚洲精品videossex少妇| 精品91久久| 亚洲最新免费视频| 国产福利一区二区三区在线视频| 精品少妇久久久| 亚洲欧美资源在线| 91麻豆精品一二三区在线| 老司机激情视频| 久久综合国产精品| 在线观看免费视频一区| 欧美激情a在线| 精品美女视频| 俄罗斯女人裸体性做爰| 欧美日韩激情网| 日本精品在线| 国产一区二区在线网站| 青青草精品视频| 欧美黄色一区二区三区| 亚洲欧美三级伦理| 国产一区二区三区亚洲综合| 成人av一级片| 亚洲欧洲日产国码二区| 全部免费毛片在线播放一个| 国产精品第2页| 激情婷婷久久| 91狠狠综合久久久久久| 亚洲成人精品视频在线观看| 国产精品亚洲一区二区三区在线观看| 一本二本三本亚洲码| 久久亚区不卡日本| 国产女无套免费视频| 国产成人激情视频|