在UglifyJS入门中主要记录了UglifyJS的安装,配置。篇末在命令行中使用了一个简单命令来压缩一个JS文件。这篇以编程的方式去压缩JS文件。即写一个build.js文件,使用node命令执行该文件。build.js中的代码会去调用UglifyJS的接口函数以执行压缩任务。

1,去github下载最新的UglifyJS。两种方式下载,如果安装了git,进入git控制台使用如下命令

git clone git://github.com/mishoo/UglifyJS.git

或者使用http方式下载,点击zip下载。解压后其目录结构如下

2,新建一个项目(文件夹)myApp,将uglify-js.js和lib目录拷贝到自己的项目中。如下

3,在myApp中新建一个compress.js,内容如下

varfs = require('fs');

varjsp = require("./uglify-js").parser;

varpro = require("./uglify-js").uglify;

varorigCode = "var abc = function(){ var one = 5; return one;}";

varast = jsp.parse(origCode); // parse code and get the initial AST

ast = pro.ast_mangle(ast); // get a new AST with mangled names

ast = pro.ast_squeeze(ast); // get an AST with compression optimizations

varfinalCode = pro.gen_code(ast); // compressed code here

console.log(finalCode);

这段代码的大概意思是取fs模块,它是node的文件模块。接着取UglifyJS的两个模块。后面就是UglifyJS的压缩流程了。

4,打开命令行,执行compress.js

控制台输出了压缩后的代码。好了,就这么简单。

5,既然在node环境下,当然可以写一个函数直接读取源文件,压缩后输出到指定的目录。将以上代码封装到一个函数中,如下

// 读取一个文件,压缩之

function buildOne(flieIn, fileOut) {

var origCode = fs.readFileSync(flieIn, 'utf8');

var ast = jsp.parse(origCode);

ast = pro.ast_mangle(ast);

ast = pro.ast_squeeze(ast);

var finalCode = pro.gen_code(ast);

fs.writeFileSync(fileOut, finalCode, 'utf8');

}

将我写的ajax-1.0.js压缩,输出到myApp目录中

buildOne('ajax-1.0.js', 'ajax-min.js');

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

uglifyjs php,使用UglifyJS合并/压缩JavaScript相关推荐

  1. 合并压缩JavaScript,开发发布两不误

    Web开发做优化的时候,需要将脚本进行压缩和合并.压缩好解决,可以找到一大堆工具在构建发布版本的时候压缩一下就好.合并就麻烦了,页面中引用的一大堆脚本文件,需要改为引用合并后的少数脚本文件,需要改动源 ...

  2. UglifyJS 合并 压缩 JS文件

    在引用库还有其他文件时,原本的项目文件很多,这时候就需要压缩合并,使用方法如下: 安装: npm install uglify-js -g 将uglifyjs安装为全局变量,方便我们在任何地方使用. ...

  3. webpack 合并压缩_极客起源 - geekori.com - 问题详情 - webpack如何打包压缩jquery 插件?...

    感谢大家的回答,自己解决了.这里将解决方案贴出来: 1.首先 webpack.config.js做如下配置 module.exports 部分 entry:  __dirname + "/m ...

  4. grunt合并压缩js、css文件

    参考文章如下: http://www.cnblogs.com/yexiaochai/p/3594561.html http://www.cnblogs.com/yexiaochai/p/3602002 ...

  5. asp.net core合并压缩资源文件引发的学习之旅

    0. 在asp.net core中使用BuildBundlerMinifier合并压缩资源文件 在asp.net mvc中可以使用Bundle来压缩合并css,js 不知道的见:http://www. ...

  6. java 代码压缩javascript_利用Java来压缩 JavaScript 代码详解

    通过移除空行和注释来压缩 JavaScript 代码 /** * This file is part of the Echo Web Application Framework (hereinafte ...

  7. java 代码压缩javascript_通过Java压缩JavaScript代码实例分享

    通过移除空行和注释来压缩 javascript 代码 /** * this file is part of the echo web application framework (hereinafte ...

  8. 使用grunt合并压缩js、css文件

    需要了解的知识:1.nodejs的安装与命令行使用2.nodejs安装应用3.grunt的初步了解 本文已假定读者已经熟悉以上知识. 好,我们继续: 任务1:将src目录下的所有zepto及插件合并, ...

  9. js合并压缩 java_Java Web程序使用wro4j合并、压缩js、css等静态资源

    在Web项目中,js.css合并压缩,不仅有利于减少Http请求数量.减少宽带资源占用,还能有效的管理各种js.css的引入,使整个项目更加有序.而对于访问用户来说,其更大的好处是增加了页面的打开速度 ...

最新文章

  1. struts学习笔记三-国际化
  2. 【Linux】在VirtualBox-6.0中安装Manjaro18.0
  3. html页面内容改变,但是网页内容不变
  4. SAP NetWeaver 业务运作面向服务平台 介绍
  5. 自学python之路(day2)
  6. 我国大陆居民身份证Java验证
  7. TP框架中内置查询IP函数
  8. cobaltstrick4.0系列教程(2)---用户接口
  9. 计算机网络实训简介,计算机网络实验报告介绍.doc
  10. nodejs从服务器返回静态文件,nodejs静态资源服务器
  11. idea粘贴代码为什么都在一行_【学园】今天程序员的每一行代码都是未来高达身上的一颗螺丝...
  12. android apk 可以直接放在systemapp下吗,内置语音apk到/system/app下的问题
  13. 生产级mysql双写_生产级Mysql物理全量备份-Xtrabackup
  14. 【C语言每日练习】——3.回文数、特殊回文数(三种方法详解)
  15. iphonex 序列号_X的序列号什么开头有什么意思吗?
  16. 牛客网暑期ACM多校训练营(第二场)
  17. Git 工具之储藏与清理-7.3
  18. shell之常用工具(cut、sort、uniq、tr)
  19. 【webview】微信和PC监听浏览器关闭和刷新(亲测可用)
  20. 潘多拉 搭建 php服务器,MAYA带你重建潘多拉!

热门文章

  1. C# NUnit的安装
  2. OpenCV实现动态人脸识别(第三讲)
  3. 给你的网站添加谷歌AMP、百度MIP、神马MIP链接自动提交功能
  4. 使用卡尔曼滤波框架做松耦合融合
  5. 快逸报表数据源找不到的一个原因
  6. PAL制式和NTSC制式的定义及区别
  7. Latch和DFF时序逻辑单元的理解?
  8. vue导出Excel模板设置单元格下拉列表
  9. html点击后变色6,纯CSS实现任意格式图标变色的研究
  10. 微信公众平台授权登录