zoukankan      html  css  js  c++  java
  • 利用node压缩、合并js,css,图片

    1.安装nodejs

    http://nodejs.org/

    2.安装各自的node package

    js我用的是UglifyJS github地址:https://github.com/mishoo/UglifyJS

    css我用的是clean-css github地址:https://github.com/GoalSmashers/clean-css

    图片用的是node-smushit    github地址:https://github.com/colorhook/node-smushit

    3.编写代码

    //js
    var fs = require('fs');
    var jsp = require("uglify-js").parser;
    var pro = require("uglify-js").uglify; 
    
    function jsMinifier(flieIn, fileOut) {
         var flieIn=Array.isArray(flieIn)? flieIn : [flieIn];
         var origCode,ast,finalCode='';
         for(var i=0; i<flieIn.length; i++) {
            origCode = fs.readFileSync(flieIn[i], 'utf8');
            ast = jsp.parse(origCode);
            ast = pro.ast_mangle(ast);
            ast= pro.ast_squeeze(ast); 
            finalCode +=';'+ pro.gen_code(ast);
         }
        fs.writeFileSync(fileOut, finalCode, 'utf8');
    }
    
    //jsMinifier('./file-src/test2.js', './file-smin/test-min.js');  //单个文件压缩
    jsMinifier(['./file-src/test.js','./file-src/test2.js'], './file-smin/test-min.js'); //合并压缩
    
    
    //css
    var cleanCSS = require('clean-css');
    
    function cssMinifier(flieIn, fileOut) {
         var flieIn=Array.isArray(flieIn)? flieIn : [flieIn];
         var origCode,finalCode='';
         for(var i=0; i<flieIn.length; i++) {
            origCode = fs.readFileSync(flieIn[i], 'utf8');
            finalCode += cleanCSS.process(origCode); 
         }
        fs.writeFileSync(fileOut, finalCode, 'utf8');
    }
     
    //cssMinifier('./file-src/indexw_20120913.css', './file-smin/index.css');  //单个文件压缩
    cssMinifier(['./file-src/index_20120913.css','./file-src/indexw_20120913.css'], './file-smin/index.css');
    
    //图片
    var imgMinifier = require('node-smushit');
    //imgMinifier.smushit('./file-src/images', {recursive: true}); //递归
    imgMinifier.smushit('./file-src/images');

     4、编译

  • 相关阅读:
    RTP 控制协议
    非关系型数据库
    关系型数据库
    处理海量数据
    处理大并发
    C++ 模板偏特化-来自STL的思考
    C++详解new/delete
    二分算法来相会
    计算机网络知识点总结
    C++字符串类型转换
  • 原文地址:https://www.cnblogs.com/zhuzf/p/2707332.html
Copyright © 2011-2022 走看看