grunt 搭建自动化打包框架

创建属于自己的lib库。

之前跟同事聊天谈到知识的积累,想到了可以建立一个js文件吧自己平时用的方法都写到这个js中,当日后积累的多了直接就可以跟jquery的包一样引入到自己新项目中直接使用了,朋友拍手叫好。最近在搞一个基于bootstrap的响应式框架,有幸得高人指点终于欣赏了grunt的强大。整理出来供诸君与某共同学习。

grunt安装:

node.js 和 grunt的安装网上教程很多,大家可以去百度,这里不是重点,直接跳过了。

好了,grunt安装好了之后,要运行grunt命令必须依赖于下面三个东西

  • Gruntfile.js             //命名行配置文件。
  • package.json          //依赖关系配置文件
  • node_modules         //相当于是一个lib库  ---》可以由配置文件生成    

跟很多文章一样,Gruntfile和package直接给出:

package.json:

{
  "name": "demo",
  "file": "zepto",
  "version": "0.1.0",
  "description": "demo",
  "license": "MIT",
  "devDependencies": {
    "grunt": "latest",
    "grunt-contrib-clean": "latest",
    "grunt-contrib-concat": "latest",
    "grunt-contrib-copy": "latest",
    "grunt-contrib-connect": "latest",
    "grunt-contrib-htmlmin": "latest",
    "grunt-contrib-cssmin": "latest",
    "grunt-contrib-imagemin": "latest",
    "grunt-contrib-uglify": "latest",
    "grunt-contrib-watch": "latest",
    "grunt-usemin": "latest",
    "connect-livereload": "latest"
  },
  "dependencies": {
    "express": "3.x"
  }
}

  Gruntfile内容

module.exports = function (grunt) {
    // 项目配置
    grunt.initConfig({

        uglify: {
            build: {
                src: '../js/*.js',
                dest: '../dist/thinkJoy.min.js'
            }
        },
        cssmin: {
            prod: {
                options: {
                    report: 'gzip'
                },
                files: [
                    {
                        expand: false,
                        src: '../css/*.scss',
                        dest: '../dist/thinkJoy.min.css'
                    }
                ]
            }
        },
        concat: {
            options: {
                separator: '\n\n',
                stripBanners: true
            },
            js: {
                src: [
                    "../js/*.js"
                ],
                dest: "../dist/thinkJoy.js"
            },
            css:{
                src: [
                    "../css/*.scss"
                ],
                dest: "../dist/thinkJoy.css"
            }
        },
        clean: {
            all: '../dist/*.*'
        },
        jshint : {
            all : '../js/common.js'
        }
    });
    
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-contrib-clean');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-cssmin');
    grunt.loadNpmTasks('grunt-contrib-concat');
    
    grunt.registerTask('default', ['jshint']);
    grunt.registerTask('join', ['uglify','cssmin','concat']);
};

  刚才说过了Gruntfile主要是命令配置,这里主要用到了一下几个命令

  1. uglify     压缩打包js文件xxx.min.js(类似bootstrap.min.js)
  2. cssmin   压缩打包css文件生成xxx.min.css(类似bootstrap.min.css)
  3. concat   这里只是做一个合并的动作,不做压缩(类似bootstrap.js和bootstrap.css)
  4. clean     用于删除文件的,这里是可以删除grunt生成的文件
  5. jshint     用于静态检查的,可以促使用户规范代码 

grunt.registerTask('default', ['jshint']);
grunt.registerTask('join', ['uglify','cssmin','concat']);


这两行代码是用来注册命令的,第一条,相当于是一个默认的动作 在当前目录下执行grunt 就会执行jshint检查如果执行grunt join则会执行后面三个动作。当执行了grunt join命令后会在跟Gruntfile文件的同级目录下生成一个dist文件夹。

图片有点丑陋,但是相信大家用过bootstrap的一看就明白了是怎么回事了。这样随着你自己不断的积累自己的lib库会越来越充实,等哪天你一不小心默然回首的时候不觉自己已经整出来了一个初具规模的lib库了。

 

git地址:https://github.com/xianZJ/webFrontEndResolution.git

 

转载于:https://www.cnblogs.com/xianZJ/p/4672189.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值