zoukankan      html  css  js  c++  java
  • grunt对js,css文件的压缩学习

    首先分享几个别人的博客,很详细,能看完跟着做一遍的话基本就会了

    http://yujiangshui.com/grunt-basic-tutorial/

    http://developer.51cto.com/art/201506/479127.htm#topx

    http://zhangzhaoaaa.iteye.com/blog/2113526

    http://www.cnblogs.com/artwl/p/3449303.html

    其次:

    总结的步骤有点乱。

    grunt的安装:
    1.在安装nodejs的基础上,安装grunt-CLI,即:npm install -g grunt-cli
    2.在项目文件夹例如demo2下建立两个空文档:Gruntfile.js和package.json
    3.在项目文件夹路径下执行npm install grunt --save-dev
    接着再执行grunt命令

    4.配置Gruntfile.js文件,配置完后再运行grunt命令

    5.安装需要的插件,比如压缩js代码用的uglify插件。npm install grunt-contrib-uglify --save-dev             此时package.json的devDependencies中会有改变,同时要接着配置Gruntfile.js文件,完整的如注意事项2所示

                                   //可一次安装多个插件 

    6.再运行grunt。则在相应的目的文件夹下就会产生对应压缩文件

    其中jshint插件是检查js语法,csslint是检查css语法错误


    以上执行了多次grunt,不够自动化,因此可以使用watch插件,实现真正的自动化

    注意事项:1.在package.json文件的依赖中,如果没有写,而是在安装插件的时候自动填入,
    则需要--save-dev的意思就是在当前目录安装grunt的同时,顺便把grunt保存为这个目录的开发依赖项,
    即package.json的devDependencies中
    2.Gruntfile.js文件的具体写法如下:                                    即:任务配置代码,插件加载代码,任务注册代码
    module.exports = function (grunt) {
      grunt.initConfig({

        pkg:grunt.file.readJSON('package.json'),//将我们的配置文件读出,并且转换为json对象

        cssmin: { //css文件压缩
          css: {
            src:'src/test.css', //源文件位置,
            dest:'build/<%= pkg.name %>-<%=pkg.version%>.min.css' //目的文件位置及名字
          }
        }
      });
      grunt.loadNpmTasks('grunt-css'); //用于加载相关插件

      grunt.registerTask('default', ['cssmin']);//注册一个自定义任务(其实也是默认任务)
    }
    3.

    如果不混淆变量名,比如原js里面是aaaa+b,后边是压缩后是n+b。这样就改变了变量名,要想仍是aaaa,则需要在Gruntfile.js中配置

                      mangle: false, //不混淆变量名
    详见第四个博客




    画外音:
    让 Grunt 帮忙实现下面几个功能:检查每个 JS 文件语法、合并两个 JS 文件、将合并后的 JS 文件压缩、将 SCSS 文件编译、新建一个本地服务器监听文件变动自动刷新 HTML 文件。

    差不多就是这些,根据这些任务需求,需要用到:

    合并文件:grunt-contrib-concat
    语法检查:grunt-contrib-jshint
    Scss 编译:grunt-contrib-sass
    压缩文件:grunt-contrib-uglify
    监听文件变动:grunt-contrib-watch
    建立本地服务器:grunt-contrib-connect

  • 相关阅读:
    Codeforces Round #417 C. Sagheer and Nubian Market
    linux 终端抓包命令
    计算机网络体系结构分析
    排序算法-快速排序
    排序算法-堆排序
    排序算法-希尔排序
    排序算法-插入排序
    排序算法-冒泡排序
    排序算法-选择排序
    杂谈:终端小工具
  • 原文地址:https://www.cnblogs.com/yyzyxy/p/7270433.html
Copyright © 2011-2022 走看看