zoukankan      html  css  js  c++  java
  • grunt构建一个项目

       准备工作:grunt基于node环境运行,所有先安装node.js

    1.安装grunt,通过node的npm的包管理工具

     >npm install grunt --save-dev

    2.npm init在项目中引导创建一个package.json文件

       >npm init

    3.新建一个Gruntfile的js文件,主要是写入grunt的配置

       module.exprots = function(grunt){

          grunt.initConfig({此处写配置的信息})

       }

     4.几个常用的插件

       (1)less监听

          >npm install grunt-contrib-less --save-dev

          a.配置信息:

             less:{development: {files: {'public/css/home/home.css': 'public/css/home/home.less'}}}

          b.注册信息: 

             grunt.loadNpmTasks('grunt-contrib-less')

          c.运行:

             >grunt less

       (2)watch监听

          >npm install grunt-contrib-watch --save-dev

          a.配置信息:

             watch:{css: {files: [ 'public/css/home/home.less'],tasks:['less'],options:{livereload:true}}}

          b.注册信息: 

             grunt.loadNpmTasks('grunt-contrib-watch')

          c.运行:

             >grunt watch

       (3)浏览器同步测试工具

          >npm install browser-sync --save-dev

          a.配置信息:

             不需要配置信息

          b.注册信息: 

             不需要注册信息

          c.运行:

             >browser-sync start --server --file "*.html"

       (4)css压缩

          >npm install grunt-contrib-cssmin --save-dev

          a.配置信息:

    cssmin: {
         target: {
             files: [{
                 expand: true,
                 cwd: 'public/css/home', //需要压缩的css路径
                 src: ['*.css', '!*.min.css'], //需要压缩的css
                 dest: 'build/css/home', //压缩之后的路径
                 ext: '.min.css' //压缩之后的css后缀名
             }]
         }
    }

          b.注册信息: 

             grunt.loadNpmTasks('grunt-contrib-cssmin')

          c.运行:

             >grunt cssmin

       (5)js合并压缩

          >npm install grunt-contrib-uglify --save-dev

          a.配置信息:

    uglify: {
          my_target: {
              files: {
                  'build/js/home/home.min.js': ['public/js/home/home1.js', 'public/js/home/home2.js']
              }
         }
    }

          b.注册信息: 

             grunt.loadNpmTasks('grunt-contrib-uglify')

          c.运行:

             >grunt uglify

       (6)合并css和js

          >npm install grunt-contrib-concat --save-dev

          a.配置信息:

    concat:{
          js:{
              files:{
                  'build/js/home/concat.js':['public/js/home/*.js']
              }
          },
          css:{
              files:{
                  'build/css/home/concat.css':['public/css/home/*.css']
              }
          }
      }

          b.注册信息: 

             grunt.loadNpmTasks('grunt-contrib-concat')

          c.运行:

             >grunt concat

       (7)css精灵

          >npm install grunt-spritesmith --save-dev

          a.配置信息:

    sprite:{
          all:{
              src:["public/img/*.png","public/img/*.jpg"], //需要整理的图片
              dest:"build/img/spriteRes.png", //生成一张图片的名称
              destCss:"build/css/spriteRes.css" //生成css的路径和文件名
          }
    }

          b.注册信息: 

             grunt.loadNpmTasks('grunt-spritesmith')

          c.运行:

             >grunt sprite

       (8)图片压缩

          >npm install grunt-contrib-imagemin --save-dev

          a.配置信息:

    imagemin:{
          release:{
              files:[{
                  expand:true,
                  src:['build/img/spriteRes.png']
              }],
              options:{
                  optimizationLevel:3
              }
          }
    }

          b.注册信息: 

             grunt.loadNpmTasks('grunt-contrib-imagemin')

          c.运行:

             >grunt imagemin

       (9)注册多任务执行

      grunt.registerTask('default', ['uglify', 'cssmin', 'concat', 'imagemin']);
  • 相关阅读:
    详解javascript中的闭包
    Cookie/Session的机制与安全
    session详解
    linux常用目录简介
    对比cp和scp命令 将数据从一台linux服务器复制到另一台linux服务器
    webpack打包速度和性能再次优化
    pc浏览器css和js计算浏览器宽度的差异以及和滚动条的关系
    chrome浏览器Timing内各字段解析
    深入理解-CLI与PHP-FPM
    swool教程链接汇总
  • 原文地址:https://www.cnblogs.com/caichunbao/p/6375307.html
Copyright © 2011-2022 走看看