前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Grunt配置及使用

Grunt配置及使用

原创
作者头像
meteorzx
发布于 2018-03-28 06:54:16
发布于 2018-03-28 06:54:16
1.5K00
代码可运行
举报
文章被收录于专栏:meteorzxmeteorzx
运行总次数:0
代码可运行

1、node环境安装

2、grunt安装

package.json文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "payment",
  "version": "0.0.1",
  "author": "zhangxu",
  "devDependencies": {
    "grunt": "^0.4.5",
    "grunt-contrib-concat": "^1.0.1",
    "grunt-contrib-connect": "^1.0.2",
    "grunt-contrib-copy": "^1.0.0",
    "grunt-contrib-htmlmin": "^2.4.0",
    "grunt-contrib-imagemin": "^2.0.1",
    "grunt-contrib-jshint": "^1.1.0",
    "grunt-contrib-less": "^1.4.1",
    "grunt-contrib-sass": "^1.0.0",
    "grunt-contrib-uglify": "^3.3.0",
    "grunt-contrib-watch": "^1.0.0"
  },
  "dependencies": {
    "express": "^4.16.2"
  }
}

Gruntfile.js文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = function (grunt) {

    grunt.initConfig({
        //初始化一个配置对象
        pkg: grunt.file.readJSON('package.json'),
        //采用imagemin压缩图片
        imagemin: {
            images: {
                expand: true,
                src: 'images/*.{jpg,png}',
                dest: 'dist/'
            },
            libWeuiImages: {
                expand: true,
                src: 'lib/weui/images/*.{jpg,png}',
                dest: 'dist/'
            }
        },
        //js语法检查
        jshint: {
            options: {
                reporterOutput: ''
            },
            all: ['js/*.js']
        },
        // js合并
        concat: {
            dist: {
                src: ['./src/plugin.js', './src/plugin2.js'],
                dest: './global.js',
            }
        },
        //采用UglifyJS压缩js
        uglify: {
            js: {
                expand: true,
                cwd: 'js',
                src: '*.js',
                dest: 'dist/js/'
            },
            libCryptoJs: {
                expand: true,
                cwd: 'lib/crypto-js',
                src: '*.js',
                dest: 'dist/lib/crypto-js/'
            },
            libJquery: {
                expand: true,
                cwd: 'lib/jquery',
                src: '*.js',
                dest: 'dist/lib/jquery/'
            },
            libWechat: {
                expand: true,
                cwd: 'lib/wechat',
                src: '*.js',
                dest: 'dist/lib/wechat/'
            },
            libWeui: {
                expand: true,
                cwd: 'lib/weui',
                src: '*.js',
                dest: 'dist/lib/weui/'
            }
        },

        //采用less压缩css
        less: {
            options: {
                compress: true,
                cleancss: true,     // 压缩css文件
                yuicompress: false
            },
            css: {
                expand: true,
                cwd: 'css',
                src: '*.css',
                dest: 'dist/css'
            },
            libWeui: {
                expand: true,
                cwd: 'lib/weui',
                src: '*.css',
                dest: 'dist/lib/weui'
            }
        },
        
        //压缩html
        htmlmin: {
            payment: {
                options: {
                    removeComments: true,
                    collapseWhitespace: true
                },
                files: [{
                    expand: true,
                    cwd: '',
                    src: ['wxjump.html', 'html/[a-z]{1,}*.html', 'html/contract/[a-z]{1,}*.html'],
                    dest: 'dist/',
                    extDot: 'first'
                }]
            }
        },
        
        //复制文件
        copy: {
            html: {
                src: 'home.html',
                dest: 'dist/'
            },
            html2: {
                src: 'html/*.html',
                dest: 'dist/'
            },
            htmlContract: {
                src: 'html/contract/*.html',
                dest: 'dist/'
            },
            html3: {
                src: 'wxjump.html',
                dest: 'dist/'
            },
        },
        
        //监视文件变化
        watch: {
            livereload: {
                options: {
                    livereload: '<%= connect.options.livereload %>'
                },
                files: [
                    'css/*.css',
                    'html/*.html',
                    'html/contract/*.html',
                    'js/*.js'
                ]
            }
        },
        //测试服务地址
        connect: {
            options: {
                port: 9000,
                open: true,
                livereload: 35729,
                // Change this to '0.0.0.0' to access the server from outside
                hostname: '192.168.16.120'
            },
            server: {
                options: {
                    port: 9001,
                    base: './'
                }
            }
        }
    });

    grunt.loadNpmTasks('grunt-contrib-less');
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-copy');
    grunt.loadNpmTasks('grunt-contrib-imagemin');
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-connect');
    grunt.loadNpmTasks('grunt-contrib-htmlmin');

    grunt.registerTask('default', []);
    //全项目:上生产用
    grunt.registerTask('payment', ['imagemin', 'jshint', 'uglify', 'less', 'htmlmin']);
    //图片文件
    grunt.registerTask('1', ['imagemin']);
    //脚本文件
    grunt.registerTask('2', ['jshint', 'uglify']);
    //样式文件
    grunt.registerTask('3', ['less']);
    //页面文件
    grunt.registerTask('4', ['htmlmin']);
    //开发
    grunt.registerTask('development', ['connect', 'watch']);
    //js脚本检查
    grunt.registerTask('jscheck', ['jshint']);
};

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
grunt
npm install -g grunt-cli //全局安装grunt npm init -y //初始化package.json npm install grunt --save-dev //在项目中安装grunt grunt --help //查看更多信息 grunt 安装完毕
河湾欢儿
2018/09/06
7000
前端自动化工具 -- Grunt 使用简介
grunt是基于nodejs的,所以需要一个 nodejs 环境,未了解的可以 来这看看
书童小二
2018/09/03
2K0
前端自动化工具 -- Grunt 使用简介
前端自动化构建工具Grunt
Grunt 是一个基于任务的JavaScript工程命令行构建工具。 Grunt和Grunt插件,是通过npm安装并管理的,npm是Node.js的包管理器。 了解Grunt前,首先要准备两件事: 1、了解npm(Node Package Manager):npm是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。 2、安装node:进入nodejs官网(https://nodejs.org/),单击INSTALL下载node安装包,默认安装。安装完成后,进入对应目录,会发现nodejs文件夹下面有npm,直接用npm安装相环境既可。
奋飛
2019/08/15
8230
Yeoman 生成的 Angular 脚手架详解
Yeoman 生成的 Angular 脚手架提供了 27 个任务配置和 3 个自定义任务。这三个自定义任务分贝为:
kl博主
2023/11/17
2790
菜鸟进阶——grunt
http://yujiangshui.com/grunt-basic-tutorial/
超然
2018/08/03
1.5K0
菜鸟进阶——grunt
初识grunt
很早就听人提过grunt,我的概念里一直认为它是一个类似java界maven的东西,帮助开发人员从频繁地编译、配置管理等工作中解放出来。今天比较有空,就尝试使用一下这个东西,看看它是不是真的那么好用。 首先安装nodejs #安装Homebrew ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" #安装nodejs brew install node #安装grunt-cli npm install -g
jeremyxu
2018/05/09
8560
Grunt :初次使用及前端构建经验
这是我们部门前端同学cobish的学习笔记,笔者编辑了一下并分享给大家。 在使用 Grunt 之前,项目静态文件几乎没进行压缩合并便直接放到线上,部分文件手动复制粘贴到某压缩网站进行压缩。没压缩合并的
金蝶云平台
2017/06/06
2.5K0
grunt集成Babel 实现ES6转ES5
背景:原来前端项目使用ES5开发,后来有个小伙伴使用了ES6的高级语言,导致项目无法通过grunt压缩。
全栈程序员站长
2022/09/28
6540
grunt集成Babel 实现ES6转ES5
ASP.NET5之客户端开发:Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用Grunt和Gulp使用Grunt准备项目配置NPM配置Grunt集成起来监测文件变化与V
Grunt和Gulp是Javascript世界里的用来做自动压缩、Typescript编译、代码质量lint工具、css预处理器的构建工具,它帮助开发者处理客户端开发中的一些烦操重复性的工作。Grunt和Gulp都在Visual studio 2015中得到支持。ASP.NET 项目模板默认使用Gulp。 Grunt和Gulp Grunt和Gulp有什么区别?Gulp虽然是稍微晚一点登场的,但是它因crisp performance和优雅的语法受到欢迎。与Grunt不同,Grunt往往在硬盘上是读写文件,G
小白哥哥
2018/03/07
3.1K0
ASP.NET5之客户端开发:Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用Grunt和Gulp使用Grunt准备项目配置NPM配置Grunt集成起来监测文件变化与V
grunt任务之seajs模块打包
grunt与seajs          grunt是前端流行的自定义任务的脚手架工具,我们可以使用grunt来为我们做一些重复度很高的事情,如压缩,合并,js语法检查等。通过定义grunt的配置文件Gruntfile.js,配置并注册grunt的任务,最终我们可以通过命令行来执行任务。          seajs主要用于模块化,通过define定义一个模块,可以通过require加载模块,exports导出模块。具体的seajs实现可通过本博客的系列博文--Seajs源码解析系列来进一步了解。     
欲休
2018/03/15
2.2K0
grunt任务之seajs模块打包
grunt入门笔记
想一想如果没有这个工具,我们需要手动新建一个压缩代码后的文件夹,每次修改原始文件,都要手动压缩一下,再保存到压缩后的文件夹,想想都要疯掉。所以,grunt前端必不可少。
卢衍飞
2022/11/12
1.3K0
grunt入门笔记
剖析Grunt任务配置
A. 通过npm init在项目根目录下生成package.json; B. 通过npm install grunt --save-dev 安装grunt依赖; C. 项目根目录下手动创建文件夹Gruntfile.js
奋飛
2019/08/15
8650
grunt[mismatched:define]
最近,在做项目优化,想将用到的jquery.js、bootstrap.js、angular.js、angular-ui-router.js、validator.js以及require.js做all in one(统一合并为一个文件),已减少http的请求数量。然而,在合并的过程中,报错:
奋飛
2019/08/15
9420
JavaScript全栈开发-工具篇(上)
一、运行环境 1. Node.js 2. Chrome 3. 其它浏览器 二、开发工具 1. WebStorm 1.1 功能特性 1.2 小技巧 1.3 实用快捷键 1.4 插件支持 2. Sublime Text 2.1 功能特性 2.2 小技巧 2.3 实用快捷键 2.4 插件支持 3. HBuilder 3.1 功能特性 3.2 小技巧 3.3 实用快捷键 3.4 插件支持 4. 开发工具小结 三、构建工具 1. Grunt 1.1 Grunt安装 1.2 Grunt配置文件 1.3 Gru
腾讯NEXT学位
2018/10/12
2K0
JavaScript全栈开发-工具篇(上)
Grunt快速入门
Grunt是基于JavaScript的命令行构建工具,它可以帮助开发者们自动化重复性的工作。你可以把它看成是JavaScript下的Make或者Ant。它可以完成诸如精简、编译、单元测试、lint检查等工作。
用户2936342
2018/08/27
6780
Gulp开发教程(翻译)
对网站资源进行优化,并使用不同浏览器测试并不是网站设计过程中最有意思的部分,但是这个过程中的很多重复的任务能够使用正确的工具自动完成,从而使效率大大提高,这是让很多开发者觉得有趣的地方。
李维亮
2021/07/09
9500
Gulp开发教程(翻译)
初探Grunt
最近打算学习一些web编程的知识,今天学习了Grunt这个工具的用法,这里简要地对学习的知识点进行个总结。
王云峰
2019/12/25
9080
最流行的4种前端构建项目工具介绍
In web development we deal with a lot of small technical artifacts. You use HTML to describe page structure, CSS how to style it and JavaScript for logic. Or you can replace HTML with something like Jade, CSS with Sass or LESS, JavaScript with CoffeeScript, TypeScript and the ilk. In addition you have to deal with project dependencies (ie. external libraries and such).
小弟调调
2018/10/18
1.7K0
前端构建工具 grunt VS gulp
前几天一个前端大拿朋友和我说gulp比grunt更好用,就了解了一下gulp,和grunt做个简单的比较 有两个明显的感受: (1)使用方式上,gulp的配置文件更清晰便利一些 以css文件的合并压缩为例 //------ gulp -------- var gulp = require('gulp'), concat = require('gulp-concat'), minifycss = require('gulp-minify-css'); gulp.task('default', function
dys
2018/04/02
6930
前端构建:Less入了个门
一、前言                                说到前端构建怎能缺少CSS预处理器呢!其实CSS的预处理器有很多啦,比较出名的有Scss、Sass、Stylus和Less。(最近还听说出现了Autoprefixer等CSS后处理器,可参考@一丝的PPT)   众多CSS预处理器中Less的语法最接近原生CSS,因此相对来说更容易上手,假如有JS、C#等编程经验的话,其实上述的几种预处理器的学习成本也不会特别高。下面是我们这阵子的学习笔记,以便日后查阅。   最好的入门教程——官网地
^_^肥仔John
2018/01/18
1.8K0
相关推荐
grunt
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验