zoukankan      html  css  js  c++  java
  • 自动化构建工具grunt的学习

     
    关于grunt的一些记录,记的比较乱。。。


    0.删除node_modules文件夹

    命令行:

    npm install rimraf -g  //先运行
    rimraf node_modules  //然后运行

    1.安装grunt及插件

     安装grunt:

    npm install grunt --save-dev

    安装插件,不需要的可以删除:

    npm install --save-dev grunt-contrib-cssmin grunt-contrib-uglify grunt-contrib-watch grunt-contrib-copy

    2.插件介绍

    grunt-contrib-jshint:javascript语法错误检查;
    grunt-contrib-watch:实时监控文件变化、调用相应的任务重新执行;
    grunt-contrib-uglify:JS文件压缩
    grunt-contrib-cssmin:css文件压缩
    grunt-contrib-copy:复制文件、文件夹
    grunt-contrib-clean:清空文件、文件夹
    grunt-contrib-concat:合并多个文件的代码到一个文件中
    grunt-contrib-htmlmin: HTML文件压缩

    3.—save-dev

    “—save-dev”的意思是,在当前目录安装grunt的同时,顺便把grunt保存为这个目录的开发依赖项。

    上文在配置package.json时,其中的“devDependencies”中就会存储开发依赖项。

    在学习grunt中,遇到的一些教程链接:

    npm的package.json中文文档:https://github.com/ericdum/mujiang.info/issues/6

    grunt入门教程:http://www.cnblogs.com/wangfupeng1988/p/4561993.html

    grunt常用插件及示例说明:http://blog.csdn.net/ligang2585116/article/details/53790043

    我配置的Gruntfile.js文件

    module.exports = function(grunt) {
        grunt.initConfig({
            pkg: grunt.file.readJSON('package.json'),
            clean: {
                build: ['build']
            },
            copy: {
                main: {
                    files: [
                        {
                            expand: true,
                            cwd: 'www',
                            src: '**',
                            dest: 'build',
                            flatten: false,
                            filter: 'isFile'
                        }
                    ]
                }
            },
            uglify: {
                main: {
                    options: {
                        sourceMap: false
                    },
                    files: [
                        {
                            expand: true,
                            cwd: 'build/src/js/',
                            src: ['**/*.js', '!**/*.min.js'],
                            dest: 'build/src/js/'
                        },
                        {
                            expand: true,
                            cwd: 'build/src/libs/',
                            src: ['*.js', '!*.min.js'],
                            dest: 'build/src/libs/'
                        },
                        {
                            expand: true,
                            cwd: 'build/src/libs/jquery',
                            src: ['*.js', '!*.min.js'],
                            dest: 'build/src/libs/jquery'
                        },
                        {
                            expand: true,
                            cwd: 'build/src/libs/layui/lay/modules',
                            src: ['*.js', '!*.min.js'],
                            dest: 'build/src/libs/layui/lay/modules'
                        },
                        {
                            expand: true,
                            cwd: 'build/src/libs/layui',
                            src: ['*.js', '!*.min.js'],
                            dest: 'build/src/libs/layui'
                        }
                    ]
                }
            },
            cssmin: {
                /* minify: {
                    expand: true,
                    cwd: 'demo/resources/css',
                    src: ['*.css', '!*.min.css'],
                    dest: 'build/resources/css'
                } */
                main: {
                    files: [
                        {
                            expand: true,
                            cwd: 'build/src/css',
                            src: ['*.css', '!*.min.css'],
                            dest: 'build/src/css'
                        }
                    ]
                },
                easyUI: {
                    files: [
                        {
                            expand: true,
                            cwd: 'build/src/libs/easyUI',
                            src: ['*.css', '!*.min.css'],
                            dest: 'build/src/libs/easyUI'
                        }
                    ]
                }
            },
            watch: {
                options: {
                    livereload: true
                },
                build: {
                    files: ['www/src/*.html', 'www/src/js/**/*.js', 'www/src/css/*.css'],
                    tasks: ['uglify', 'cssmin:main'],
                    options: {
                        spawn: false
                    }
                }
            }
        });
        
        
        
        
        grunt.loadNpmTasks('grunt-contrib-clean');
        grunt.loadNpmTasks('grunt-contrib-concat');
        grunt.loadNpmTasks('grunt-contrib-copy');
        grunt.loadNpmTasks('grunt-contrib-uglify');
        grunt.loadNpmTasks('grunt-contrib-cssmin');
        grunt.loadNpmTasks('grunt-contrib-watch');
        
        
        grunt.registerTask('default', ['clean', 'copy', 'cssmin', 'watch']);
        //grunt.registerTask('default', ['clean']);
    };
  • 相关阅读:
    Linux_23 DNS 正向解析区域、反向解析区域;主/从;子域;基本安全控制
    Linux_22 加密和解密及OpenSSL
    Linux_21 日志系统、ssh服务、系统安装及系统故障排除
    Linux_20 子网划分
    Akavache简明使用指南
    Oracle存储过程解析XML内容
    docker部署微服务不支持中文字体的解决方案
    Three.js
    Three.js
    [Linux] vim状态栏配置
  • 原文地址:https://www.cnblogs.com/laq627/p/6845336.html
Copyright © 2011-2022 走看看