精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲美女久久精品| 欧美亚洲国产怡红院影院| 日本精品久久久久久| 国产黄色一区| 亚洲人成7777| 久久精品五月婷婷| 国产又粗又猛又爽又黄的| 波多野结衣一区二区三区四区| 热草久综合在线| 精品一区二区三区三区| 影音先锋欧美资源| 二区三区在线视频| 日韩主播视频在线| 久久高清视频免费| 日韩精品卡通动漫网站| 99精品女人在线观看免费视频| 亚洲国产精品影院| 亚洲永久激情精品| 四虎国产精品永远| 国产精品一区免费在线观看| 欧美一级电影久久| www色aa色aawww| 蜜桃tv一区二区三区| 欧美一卡2卡3卡4卡| www.日本xxxx| 三级在线观看视频| 一区二区三区高清在线| 五月婷婷综合色| 天天插天天干天天操| 国产一区二区在线观看免费| 日韩免费高清在线观看| 久久综合成人网| 午夜av一区| 在线播放国产一区中文字幕剧情欧美 | 国产中文字幕视频在线观看| 麻豆影视国产在线观看| 久久久久国产精品厨房| 国产伦理一区二区三区| 国产成人a人亚洲精品无码| 美女在线一区二区| 日本午夜人人精品| 亚洲欧美在线视频免费| 欧美日韩亚洲三区| 欧美精品在线播放| 亚洲天堂一级片| 99re久久最新地址获取| 国产一区二区av| 国产 欧美 在线| 少妇一区二区三区| 日韩成人av网| 国产在线观看无码免费视频| 果冻天美麻豆一区二区国产| 欧美成人aa大片| xxxx国产视频| 亚洲伊人影院| 精品欧美一区二区久久| 久久久久久无码精品人妻一区二区| 亚洲电影二区| 91麻豆精品国产91久久久更新时间| 中国黄色片免费看| 少妇高潮一区二区三区99| 欧美色男人天堂| 日本在线一二三区| 亚洲青青一区| 欧美一区2区视频在线观看| 中文字幕欧美视频| 亚洲天堂av资源在线观看| 日韩欧美一区二区三区在线| 国产精久久久久| 欧美成人一区在线观看| 亚洲欧美日韩视频一区| 最近中文字幕在线mv视频在线| 精品高清在线| 久久久久www| 欧美日韩国产精品一区二区三区| 国产精品magnet| 538国产精品视频一区二区| youjizz在线视频| 全部av―极品视觉盛宴亚洲| 国产在线高清精品| 蜜臀av在线观看| 久久九九久精品国产免费直播| 日韩精品伦理第一区| 欧美成人三区| 亚洲成av人影院| caoporn超碰97| 美女精品视频在线| 日韩成人在线视频| 99久久99久久精品免费| 午夜精品婷婷| 热久久99这里有精品| 亚洲一区精品在线观看| 国产成人h网站| 六十路精品视频| 免费在线看黄网站| 欧美日韩加勒比精品一区| 日韩免费高清在线| 中文在线综合| 国产亚洲成av人片在线观看桃| 91传媒免费观看| 国产日韩欧美| 国产日韩欧美日韩| 亚洲成人黄色片| 欧美经典一区二区三区| 奇米777四色影视在线看| 澳门成人av网| 日韩一二在线观看| 国产毛片欧美毛片久久久| 午夜精品偷拍| 国产精品人成电影| 色哟哟中文字幕| 亚洲欧洲综合另类| 亚洲乱码国产一区三区| 成人自拍在线| 久久精品国产电影| www.久久精品视频| 成人污污视频在线观看| 在线观看日韩羞羞视频| 亚洲欧美小说色综合小说一区| 在线不卡一区二区| 在线小视频你懂的| 99热精品在线观看| 高清视频在线观看一区| 日本在线免费看| 日本高清无吗v一区| 制服丝袜在线第一页| 欧美超碰在线| 国产激情综合五月久久| 午夜视频在线免费播放| 夜夜嗨av一区二区三区| 欧美午夜精品理论片| 国产在视频线精品视频www666| 欧美激情视频播放| 国产v片在线观看| 国产精品国产馆在线真实露脸| 日韩a在线播放| 六月丁香久久丫| 欧美精品第一页在线播放| 国产一区二区在线不卡| 欧美国产97人人爽人人喊| 日韩中文字幕二区| 香蕉久久精品| 9.1国产丝袜在线观看 | 欧美丰满艳妇bbwbbw| 韩国精品久久久| 亚洲欧洲精品一区| 91精品国产经典在线观看| 亚洲日韩第一页| 精品国产xxx| 2020国产精品自拍| 免费裸体美女网站| 美女毛片一区二区三区四区最新中文字幕亚洲| 韩国一区二区电影| 色wwwwww| 日韩欧美综合在线视频| 无码人妻精品一区二区中文| 母乳一区在线观看| 欧美精品久久| 五月激情久久| 亚洲四区在线观看| 色哟哟亚洲精品| 色悠悠久久综合网| 日本一区二区三区视频| 国产精品福利观看| www.91在线| 欧美日韩国产一区二区三区地区| 成人18视频免费69| 国产精品一区二区久激情瑜伽| 国产精品久久久久久久久电影网| 97se亚洲| 国产97色在线| 日本中文在线观看| 精品国产一二三| 五月天婷婷久久| 国产精品美女一区二区在线观看| 污污网站在线观看视频| 欧美日韩综合| 久久综合入口| 国产一区二区色噜噜| 日韩在线高清视频| а√天堂资源在线| 黑人精品xxx一区| 毛片视频免费播放| 国产不卡在线视频| 国产美女三级视频| 亚洲男女av一区二区| 国产精品中出一区二区三区| 欧洲av不卡| 欧美另类xxx| 免费在线视频一级不卡| 777a∨成人精品桃花网| 国产精品第9页| 国产精品久久久久久久久免费丝袜 | 在线看不卡av| 青青草激情视频| www国产精品av| 天堂av手机在线| 亚洲视频成人| 中国成人在线视频| 欧美日韩麻豆| 91在线看www| 欧美日韩五码| 久久久久中文字幕| 中文字幕在线播放| 日韩国产精品亚洲а∨天堂免| 在线观看中文字幕网站| 午夜久久久影院| 成年人二级毛片| 久久久久国产精品厨房| 久久精品无码专区| 毛片av一区二区| 99999精品视频| 狠狠综合久久av一区二区老牛| 日本一区免费观看| 成人h动漫免费观看网站| 国产欧美在线播放| 欧美日韩免费看片| 国内精品模特av私拍在线观看| 日本激情在线观看| 亚洲最新视频在线| 欧美成人免费| 亚洲第一av在线| www.爱爱.com| 91精品国产综合久久蜜臀| 黄色污污视频软件| 欧美日韩在线一区| 黄色片视频网站| 亚洲电影激情视频网站| 99热精品免费| 亚洲欧美激情视频在线观看一区二区三区| 精品无人区无码乱码毛片国产| 白白色 亚洲乱淫| 久久久久亚洲AV成人网人人小说| 狠狠色伊人亚洲综合成人| 亚洲五月天综合| 久久先锋资源| 欧美 国产 日本| 亚洲视频二区| 日本成年人网址| 一本色道久久综合亚洲精品高清| 国产爆乳无码一区二区麻豆| 91精品一区二区三区综合在线爱| 一本久道久久综合狠狠爱亚洲精品| 精品久久久久中文字幕小说| 日韩欧美激情一区二区| 精品国内自产拍在线观看视频| 欧美亚州在线观看| 国产91精品对白在线播放| 欧美日韩精品免费在线观看视频| 性欧美xxxx免费岛国不卡电影| 久精品国产欧美| 婷婷成人综合| 欧美一区二区三区电影在线观看| 国产精品一国产精品| 视频在线一区二区三区| 精品视频亚洲| 亚洲电影免费| 天天做天天爱天天综合网| 亚洲免费av网| 国产精品v一区二区三区| 国产精品69久久久| 国产欧美高清| 国产福利一区视频| 蜜桃久久久久久| 亚洲精品国产一区二区三区| 国产一区二区毛片| www.男人天堂| 国产日韩一级二级三级| 99久久99久久精品免费看小说.| 国产精品网站导航| 全网免费在线播放视频入口| 亚洲综合一区二区精品导航| 亚洲精品www久久久久久| 日本韩国一区二区三区| 国产一区二区在线播放视频| 精品少妇一区二区三区在线视频| 天天操天天射天天舔| 在线观看精品自拍私拍| 1769免费视频在线观看| 国内外成人免费激情在线视频网站 | 日韩极品少妇| 亚洲三区在线| 精品动漫3d一区二区三区免费版 | 久久精品免费看| 美国黄色一级视频| 国产欧美久久久精品影院| 国产探花在线免费观看| 欧美性xxxx极品高清hd直播| 91av久久久| 亚洲精品久久久久久久久久久久久| 国产精品久久一区二区三区不卡| 久久精品欧美视频| 一区一区三区| 97久久人人超碰caoprom欧美| 婷婷综合电影| 青青草免费在线视频观看| 国产一区二区三区的电影| 一区二区三区四区毛片| 91年精品国产| 久草免费在线视频观看| 欧美亚洲免费在线一区| 色综合久久久久久| 久色乳综合思思在线视频| 成人线上视频| 成人在线观看91| 成人羞羞视频播放网站| www..com日韩| 韩国v欧美v亚洲v日本v| japanese中文字幕| 亚洲国产一区二区视频| 91久久久久久久久久久久| 日韩精品中文字幕在线播放| 成人日韩欧美| 国产精品美女无圣光视频| 国产精品丝袜在线播放| 国产成年人在线观看| 久久婷婷久久| 成人免费av片| 性欧美大战久久久久久久久| 国产日韩在线观看一区| 国产亚洲人成a一在线v站| 9999在线视频| 99re视频在线| 五月激情久久久| 中文字幕第38页| 欧美国产综合色视频| 国产精品第5页| 亚洲国产精品成人一区二区| 天堂亚洲精品| 91福利视频导航| 天天做天天爱天天综合网| 嫩草av久久伊人妇女超级a| 99久久99精品久久久久久| 久久久久成人网站| 日韩欧美中文字幕精品| 成人影院www在线观看| 国产日本欧美在线观看 | 国产69精品久久久久777| 污污的视频在线免费观看| 欧美久久一二区| 在线观看黄色av| 国产精品永久免费| 91综合在线| 五月天婷婷在线观看视频| ㊣最新国产の精品bt伙计久久| 国产精品51麻豆cm传媒| 国产一区二区三区三区在线观看| 欧美一区久久久| 亚洲激情啪啪| 久久99国内精品| 神马久久精品综合| 欧美一区二区三区在线观看 | 韩国欧美亚洲国产| 奇米777国产一区国产二区| 你真棒插曲来救救我在线观看| 成人污视频在线观看| 日韩 欧美 精品| 精品视频在线播放色网色视频| 三妻四妾完整版在线观看电视剧| 久久久久无码国产精品一区| 美女爽到呻吟久久久久| 免费黄在线观看| 6080国产精品一区二区| 在线观看三级视频| 久久99精品久久久久久三级 | 下面一进一出好爽视频| 亚洲免费观看视频| 六月婷婷中文字幕| 欧美一二三视频| 日韩极品一区| 三级网站免费看| 高跟丝袜一区二区三区| 啊v视频在线| 亚洲va男人天堂| 夜久久久久久| 免费成人深夜蜜桃视频| 日韩欧美123| xxxxxx欧美| 黄色网络在线观看| aaa国产一区| 在线观看免费视频a| 欧美日韩国产二区| 综合综合综合综合综合网| 香蕉视频999| 午夜一区二区三区在线观看| 电影在线高清| 成人欧美一区二区三区视频| 国产精品五区| 欧美日韩午夜视频| 日韩精品久久久久 | 国内精品二区| 日本91福利区| 日韩三级视频在线| 精品国内亚洲在观看18黄| 久久久亚洲欧洲日产| 日本人视频jizz页码69| 亚洲成人www| 日本最黄一级片免费在线| 久久99欧美| 国产精品一区二区无线|