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 ...
随机推荐
- 判断弹出框存在(alert_is_ present)
系统弹窗这个是很常见的场景,有时候它不弹出来去操作的话,会抛异常.那么又不知道它啥时候会出来,那么久需要去判断弹窗是否弹出了 判断 alert 源码分析 class alert_is_present( ...
- CentOS 7下使用yum安装MySQL5.7
1.卸载 1.1先停掉mysql进程,没有安装过的可以直接跳过 pkill - mysqld rpm -qa|grep -i mysql 1.2用命令 yum -y remove -.el7.x86_ ...
- nginx基本配置说明
nginx基本配置与参数说明 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 ...
- centos7 mariadb 设置root密码
centos7 mariadb 设置root密码 修改root密码1.以root身份在终端登陆,必须2.输入 mysqladmin -u root -p password root后面的 root ...
- 查找CPU使用率过高的线程
1.在编写程序中有时候设置不恰当,休眠时间不够,一般情况下4核的电脑CPU使用率一直大于23%,8核的大于13%就有可能是这种情况 解决方法: 在VS查看并行线程利用CPU使用工具ProcessExp ...
- centos下不重装php——给PHP添加新扩展库
装完php.发现需要一些新扩展库比如常见的mysqli之类的.在不重装php安装新扩展,以一个不常用的库xsl为例. 环境:centos6.8,php5.3.29 ,osx10.11.6 我的php相 ...
- 修改npm包管理器的registry为淘宝镜像(npm.taobao.org)<转>
起因 安装了node,安装了npm之后,官方的源实在是 太慢了! 看了看淘宝的npm镜像, http://npm.taobao.org/ 竟然说让我再下载一个cnpm,要不然就每次都得install ...
- nexus3安装
windows环境 1.下载nexus3 2.以管理员的方式打开命令行,建议打开服务管理界面,将这个服务设置为手动,步骤是:右键我的电脑-->服务-->nexus,然后点击设置手动启动 3 ...
- PAT 1044. Shopping in Mars
#include <cstdio> #include <cstdlib> #include <vector> #include <climits> #i ...
- nodejs的socket.io学习笔记
socket.io学习笔记 1.服务器信息传输: 2.不分组,数据传输: 3.分组数据传输: 4.Socket.io难点大放送(暂时没有搞定): 服务器信息传输 1. // send to curre ...