Grunt 使用(二)uglify插件压缩javascript代码
本文在配置grunt基本环境的基础下,讲解如何使用grunt-contrib-uglify进行javascript压缩
本文只介绍了grunt-contrib-uglify插件的一种压缩方式适用于大部分情况,详细请看:https://www.npmjs.com/package/grunt-contrib-uglify
1、安装contrib-uglify
npm install grunt-contrib-uglify --save-dev
2、添加add.js 和 delete.js 源文件
//目录解构
reporter //根目录
++++build //打包输出目录
-------打包生成的文件
++++src //源代码开发文件目录
-------add.js
-------delete.js
Gruntfile.js //grunt项目配置文件
package.json //项目信息文件(查看依赖)
add.js
var nj = 09;
var ij = 10;
var add = function(a,b){
return a+b;
}
add(nj, ij);
delete.js
var a = 19;
var b = 20;
var deletes = function(a,b){
return a-b;
}
deletes(a, b);
3、配置Gruntfile.js
module.exports=function(grunt){
console.log("进入了Gruntfile.js文件")
//任务配置,所有插件的配置信息
grunt.initConfig({
//获取package.json的信息
pkg:grunt.file.readJSON('package.json'),
//uglify 插件的配置信息
uglify: {
options: {
banner:'/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
'<%= grunt.template.today("yyyy-mm-dd") %> */' // 配置打包后文件头部描述
},
my_target: {
files: {
'build/<%= pkg.name %> - v<%= pkg.version %>.min.js': ['src/add.js','src/delete.js']
}
}
}
});
//加载grunt-contrib-uglify
grunt.loadNpmTasks('grunt-contrib-uglify');
//告诉grunt当我们在终端中输入grunt时需要做些什么(注意先后顺序)
grunt.registerTask('default',['uglify']);
};
options.banner:是打包后的输出文件头部显示的注释,一般我们使用package.js里的name、version等来描述。
mytarget.files:是基础文件的打包配置
- build是打包后的输出目录。名字可自定义,再此我用的package.json的name和version作为压缩后的名字
- 被打包文件,可以是个数组,将多个指定路径的文件打包到一个文件下。
注意:
- 以下两句很重要,我们下载安装了uglify,还要将插件uglify加载进来
//加载grunt-contrib-uglify
grunt.loadNpmTasks('grunt-contrib-uglify');
//告诉grunt当我们在终端中输入grunt时需要做些什么(注意先后顺序)
grunt.registerTask('default',['uglify']);//在此编写uglify这个字符串,是为了执行grunt的时候,就执行这个插件。
- 第二步在配置打包文件,和打包后的输出文件以及路径
my_target: {
files: {
'build/<%= pkg.name %> - v<%= pkg.version %>.min.js': ['src/add.js','src/delete.js']
}
}
4、执行grunt命令进行打包
//执行grunt出现一下消息代表打包成功 D:\Project\grunt_demo>grunt
进入了Gruntfile.js文件
Running "uglify:my_target" (uglify) task
>> 1 sourcemap created.
>> 1 file created 172 B → 206 B Done.

打包之后的文件展示:
/*! grunt_demo - v1.0.1 - 2019-03-15 */
var nj=9,ij=10,add=function(e,n){return e+n};add(nj,ij);var a=19,b=20,deletes=function(e,n){return e-n};deletes(a,b);
(完)
Grunt 使用(二)uglify插件压缩javascript代码的更多相关文章
- 使用Google Closure Compiler高级压缩Javascript代码
背景 前端开发中,特别是移动端,Javascript代码压缩已经成为上线必备条件. 如今主流的Js代码压缩工具主要有: 1)Uglify http://lisperator.net/uglifyjs/ ...
- Cordova插件中JavaScript代码与Java的交互细节介绍
在Cordova官网中有这么一张架构图:大家看右下角蓝色的矩形框"Custom Plugin"--自定义插件.意思就是如果您用Cordova打包Mobile应用时,发现您的移动应用 ...
- 林大妈的JavaScript基础知识(二):编写JavaScript代码前的一些简单工作
在介绍JavaScript语法前,我们需要知道,学习语法必须要多利用手敲代码来巩固记忆.因此,由于JavaScript的特性,它不能像C++和Java一样独立地编译及运行,我们需要在调试运行JavaS ...
- 使用Google Closure Compiler高级压缩Javascript代码注意的几个地方
介绍 GCC(Google Closure Compiler)是由谷歌发布的Js代码压缩编译工具.它可以做到分析Js的代码,移除不需要的代码(dead code),并且去重写它,最后再进行压缩. 三种 ...
- Gulp压缩JavaScript代码
因为gulp是自动化工具,所以我们得告诉它,需要怎么做,才能达到我们的目的. 我们首先得新建一个js文件,用来编写我们的需求,以便gulp能按着我们的意愿来执行. 我将这个js文件取名叫gulpfil ...
- 微信小程序 - gulp插件压缩(代码、图片等)
最后更新时间: 2018.7.18 :更新了所有package.json插件版本以及修复极个别问题. 2018.8.12 : 增加提示,所有标签必须闭合(不然打包会报错) 2018.10.13:需要用 ...
- 【Java】通过移除空行和注释来压缩 JavaScript 代码
1. [代码]JavaScriptCompressor.java/** * This file is part of the Echo Web Application Framework (herei ...
- Cordova应用的JavaScript代码和自定义插件代码的调试
我之前写过三篇Cordova相关的技术文章.当我们使用Cordova将自己开发的前端应用打包安装到手机上后,可能会遇到需要调试Cordova应用的时候. 本文就介绍Cordova应用的调试步骤. 如果 ...
- python 全栈开发,Day50(Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏)
一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...
随机推荐
- (转)Linux-HA实战(1)— Heartbeat安装
原文:http://blog.csdn.net/liaomin416100569/article/details/76087448-------centos7源代码编译安装heartbeat 原文:h ...
- android httpclient 发送 PATCH 请求
Put 用于全部更新 Patch 用于部分更新 重写一下 HttpPut 或 HttpPost 的 getMethod 方法 /** * Send a patch request */ public ...
- vim实战:插件安装(Vundle,NerdTree)
一:插件管理器Vundle 1.简介 Vundle是vim的一个插件管理器, 同时它本身也是vim的一个插件.插件管理器用于方便.快速的安装.删除.Vim更新插件.vim Vundle插件官方地址:h ...
- Clojure编写一个阶乘程序 使用递归
这是递归 (def f (fn fb [x] (if (< x 2) 1 (* x (fb (- x 1)) ) ) ) ) ( ...
- WEB前端笔记
HTML+CSS部分 IE6使用PNG的透明问题 解决关键字 DD_belatedPNG_0.0.8a.js Google或百度一下,下载之 <!--[if lte IE 6]> < ...
- Cucumber capybara 每个Scenario登陆一次
hook.rb中添加: After do |scenario| Capybara.current_session.instance_variable_set(:@touched, false)end ...
- 持续集成工具TeamCity配置使用
持续集成CI(Continuous Integration)主要包括自动化的编译.发布和测试集成,对于我们信息系统项目开发非常有用.一般开发人员机器上会搭建自己的开发环境,整个项目在服务器上会搭建测试 ...
- FZU 2138——久违的月赛之一——————【贪心】
久违的月赛之一 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Stat ...
- 阿里云配置HTTPS
阿里云配置HTTPS 2018-05-29 16:00:56 by SemiconductorKING 最近申请域名配置了一下HTTPS协议,记录一下配置过程. 准备 备案过的域名,一个SSL证书(免 ...
- Azure 项目构建 – 部署高可用的 Python Web 应用
Python 以其优美,清晰,简单的特性在全世界广泛流行,成为最主流的编程语言之一.Azure 平台针对 Python 提供了非常完备的支持.本项目中,您将了解如何构造和部署基于 Azure Web ...