grunt 压缩多个js,css文件

付测试例子链接:http://pan.baidu.com/s/1jGk2TEm

步骤:首先需要再与Gruntfile.js同一层创建文件夹dist,然后执行$npm install ,最后执行grunt.

看了两天的grunt各种资料,终于在今天打包成功了,我看了网上的很多资料,在打包的时候都出现很多问题,原因是我的js与css路径问题,现在做一个简单的测试例子。

首先目录结构

package.json

{
  "name": "pro",
  "version": "0.1.1",
  "description": "最后更新于:2015-11-12",
  "main": "Gruntfile.js",
  "dependencies": {
    "is-stream": "^1.0.1",
    "lodash": "^3.10.1",
    "xtend": "^4.0.1"
  },
  "devDependencies": {
   "grunt-contrib-cssmin": "latest",
    "grunt-contrib-jshint": "latest",
    "grunt-contrib-htmlmin": "latest",
    "grunt-contrib-uglify": "latest"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "www.bluesdream.com",
  "license": "MIT license"
}

Gruntfile.js

module.exports = function (grunt) {

  grunt.initConfig({
      jshint: {
            all: [
                ‘Gruntfile.js‘,
                ‘pro/**/*.js‘
            ],
            options: {
                browser: true
            }
        },
    //压缩JS
    uglify: {
      prod: {
        options: {
          compress: {
            global_defs: {
              PROD: true
            },
            dead_code: true
          }
        },

        files: [{
            expand: true,
            cwd: ‘pro/js‘,
            src: [‘*.js‘,‘**.js‘],
            dest: ‘dist/js‘
        }]
      }
    },

    //压缩CSS
    cssmin: {
      prod: {
        options: {
          report: ‘gzip‘
        },
        files: [
          {
            expand: true,
            cwd: ‘pro/css‘,
            src: [‘*.css‘,‘**/*.css‘],
            dest: ‘dist/css‘
          }
        ]
      }
    },

    //压缩HTML
    htmlmin: {
      options: {
        removeComments: true,
        removeCommentsFromCDATA: true,
        collapseWhitespace: true,
        collapseBooleanAttributes: true,
        removeAttributeQuotes: true,
        removeRedundantAttributes: true,
        useShortDoctype: true,
        removeEmptyAttributes: true,
        removeOptionalTags: true
      },
      html: {
        files: [
          {expand: true, cwd: ‘pro‘, src: [‘*.html‘,‘**/*.html‘], dest: ‘dist‘}
        ]
      }
    }

  });

  grunt.loadNpmTasks(‘grunt-contrib-uglify‘);
  grunt.loadNpmTasks(‘grunt-contrib-cssmin‘);
  grunt.loadNpmTasks(‘grunt-contrib-htmlmin‘);
  grunt.loadNpmTasks(‘grunt-contrib-jshint‘);

  grunt.registerTask(‘default‘, [‘jshint‘,‘uglify‘,‘cssmin‘,‘htmlmin‘]);
};

  然后执行 $npm install ,下载依赖包

  最后执行grunt default,成功打包。

  我在打包过程中出过错,然后跑去问了grunt原作者,得到他本人的回答,表示很兴奋。他说我的包版本太旧了,让我试试最新的,我索性直接把package.json里面的包版本都设置为latest,压缩成功。

时间: 2024-10-24 10:19:14

grunt 压缩多个js,css文件的相关文章

Web性能优化之动态合并JS/CSS文件并缓存客户端

在Web开发过程中,会产生很多的js/css文件,传统的引用外部文件的方式会产生多次的http请求,从而加重服务器负担且网页加载缓慢,如何在一次请求中将多个文件一次加载出来?接下来给大家介绍在ASP.NET中动态合并加载多个js或css文件.原理:减少请求服务器的次数达到优化效果先给大家看一下传统引用方式和优化后的比较:1.传统引用方式(下图): 这样的引用方式将会请求5个js文件也就是5次http请求(下图): 2.我们来看看优化后(下图): 大家可以看到修改后只有一次请求,花费的时间节省了很

javascript异步延时加载及判断是否已加载js/css文件

引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. 引用的声明方法:类型标识符 &引用名=目标变量名: 例如: int a int &b=a; //定义引用b,它是变量a的引用,即别名 #include <stdio.h> void main() { int a = 123; int &b = a; printf("a=%d b=%d\n", a, b); } 执行结果: 实例:引用和变量的关系 #include <io

nginx设置反向代理后,页面上的js css文件无法加载

问题现象: nginx配置反向代理后,网页可以正常访问,但是页面上的js css文件无法加载,页面样式乱了. (1)nginx配置如下: (2)域名访问:js css文件无法加载: (3)IP访问:js css文件可以正常加载: 解决方法: nginx配置文件中,增加如下配置: location ~ .*\.(js|css)$ { proxy_pass http://127.0.0.1:8866; } 原因分析: 反向代理的路径下找不到文件,需要单独指定js css文件的访问路径.

iOS之在webView中引入本地html,image,js,css文件的方法 - sky//////////////////////////////////////ZZZZZZZZZZZZZZZ

iOS之在webView中引入本地html,image,js,css文件的方法 2014-12-08 20:00:16CSDN-sky_2016-点击数:10292 项目需求 最近开发的项目,需要一个webView,同时这个webView会需要引入一些项目中的资源: 一个本地的html文件,作为webView的模板 两张loading图片,在图片未加载的时候进行占位 jquery.js,scrollLoading.js 也是本地的,实现滚动加载图片功能 然后就开始了漫长的Google历程. 在w

Django js css 文件配置

settings.py  加一行 SCRIPTS_URL = os.path.join(BASE_DIR,'scripts/') (在项目根目录下有个scripts文件夹 即 和manage.py 同级) 然后在urls.py 加个底下那一段,不知道为什么我在Mac下 合并在一起就不行了 难道是人品? urlpatterns = patterns('', # Examples: # url(r'^$', 'Notes.views.home', name='home'), # url(r'^blo

javascript异步延时载入及推断是否已载入js/css文件

<html> <head> <script type="text/javascript"> /**=========================================** | 异步延时载入js/css文件 | @example loadasync("http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"); | @author [email p

xcode,在webView中引入本地html,image,js,css文件的方法

http://www.shuizhongyueming.com/2014/01/load-local-image-js-css-file-to-webview-in-xcode/ xcode,在webView中引入本地html,image,js,css文件的方法

ssm 整合中js,css 文件无法引入

问题:ssm 整合中第三方 js,css 文件无法引入 检查:ssm 整合配置完好 无拦截器拦截 spring mvc  静态资源已配置 编译时可以直接跳转到js  css 问题发现 js  css 文件放在WEB-INF 下,导致无法引入 解决 js  css 文件放在webapp 下,可以引入 原文地址:https://www.cnblogs.com/jsbk/p/9461374.html

grunt压缩多个js文件和css文件

压缩前的工程目录: 1.安装js,css需要的插件 使用npm安装:npm install grunt-contrib-uglify --save-dev  -------->安装js压缩插件 npm install grunt-contrib-cssmin --save-dev  -------->安装css压缩插件 手动安装后,在package.json文件里,会自动将“grunt-contrib-uglify”加入,并且是当前grunt-contrib-uglify的最新版本,就如下面的