grunt 0.4.1构建工具入门实践(转)

简介: 由于最近的食美特项目需要对css文件和js文件进行压缩,各种比较之后,选择了grunt进行构建。google一下,几乎都是grunt0.3的使用说明,按照说明,几乎无法使用。查看gruntjs的入门 Getting started,又是云里雾里的,好吧,只能耐心看文档和不断的实践吧。

由于最近的食美特项目需要对css文件和js文件进行压缩,各种比较之后,选择了grunt进行构建。google一下,几乎都是grunt0.3的使用说明,按照说明,几乎无法使用。查看gruntjs的入门 Getting started,又是云里雾里的,好吧,只能耐心看文档和不断的实践吧。

一、使用环境说明:

1、在window xp 下使用

2、命令行使用的git的客户端 msysgit 1.7.6(类似的nodejs应用,使用类linux的命令行比较好)

3、 只是入门说明,目的是快速的搭建环境,示例能够跑起来。详细的文档资料请参考gruntjs,

一、nodejs安装

进入 http://nodejs.org/ 直接点击 INSTALL,直接安装。(windows 下安装nodejs 会直接安装npm)

二、grunt 安装

由于0.4.1版本的grunt分为3部分:grunt,grunt-cli 和 grunt-init。

1、安装grunt-cli

如果 之前安装过grunt,需要先卸载  npm uninstall -g grunt

 安装 grunt-cli : npm install -g grunt-cli

2、创建grunt项目

grunt项目一般需要以下内容:1 、grunt( 需要安装)2、grunt 插件 (需要安装) 3、package.json 和 Gruntfile.js 。 (官方入门Getting started 说通过 grunt-init 和 npm init 创建。对于入门来说,这两中方式都不太好用。推荐直接创建 package.json 和Gruntfile.js 文件)

1、在 c 盘 创建文件夹:testGrunt

2、创建2个文件package.json 和 Gruntfile.js

package.json 内容如下

?
{
   "name" : "smeitejs" ,
   "version" : "0.1.0" ,
   "description" : "js for smeite.com" ,
   "homepage" : "http://smeite.com/" ,
   "author" : "zuosanshao <zuosanshao@qq.com>" ,
   "devDependencies" : {
     "grunt" : "~0.4.1" ,
     "grunt-contrib-jshint" : "~0.3.0" ,
     "grunt-contrib-nodeunit" : "~0.1.2" ,
     "grunt-contrib-cssmin" : "~0.5.0"
   }
}

Gruntfile.js 

?
module.exports = function (grunt) {
// Project configuration.
grunt.initConfig({
   uglify: {
     options: {
       mangle: false
     },
     build: {
       files: {
         'assets/config.min.js' : [ 'js/config.js' ],
          'assets/smeite.min.js' : [ 'js/smeite.js' ],
      'assets/index.min.js' : [ 'js/index.js' ]
       }
     }
   },
 
cssmin: {
   compress: {
     files: {
       'assets/all.min.css' : [ 'css/base.css' , 'css/global.css' ]
     }
   },
  // smeite: {
   //  files: {
   //    'assets/smeite.all.css': ['/play21/smeite.com/public/assets/css/**/*.css']
   //  }
  // },
   with_banner: {
     options: {
       banner: '/* My minified css file test test */'
     },
     files: {
       'assets/min/base.css' : [ 'css/base.css' ],
       'assets/min/global.css' : [ 'css/global.css' ]
     }
   }
}
 
});
 
   // Load the plugin that provides the "uglify" task.
   grunt.loadNpmTasks( 'grunt-contrib-uglify' );
   grunt.loadNpmTasks( 'grunt-contrib-cssmin' );
 
   // Default task(s).
   grunt.registerTask( 'default' , [ 'uglify' ]);
 
};

 由于在食美特项目只需要压缩js和css文件。所有在Gruntfile.js 配置了2个grunt插件: grunt-contrib-uglify 和 grunt-contrib-cssmin

3 安装 grunt 插件。在git 客户端键入命令 cd  /c/testGrunt ; 

  • 键入命令 npm install grunt-contrib-uglify  安装uglify
  • 键入命令 npm install  grunt-contrib-cssmin  安装cssmin

  

4、 准备相关资料

在 /c/testGrunt 目录下,创建 js目录,并在js目录下创建文件config.js  smeite.js index.js ,创建css目录,并在css目录下创建base.css 和 global.css。 (这些文件都在Gruntfile.js 有配置,所以需要创建,内容可以随意的写)

5、执行grunt 命令

执行js压缩命令 grunt uglify 效果如下

执行css压缩命令 grunt cssmin 效果如下

 

整个文件截图

后记:1、uglify 插件的使用说明 https://npmjs.org/package/grunt-contrib-uglify 

        2、cssmin插件使用说明 https://npmjs.org/package/grunt-contrib-cssmin

       3、插件的配置需要在gruntfile.js中配置

目录
相关文章
|
3月前
|
缓存 Rust 前端开发
【一起学Rust | 框架篇 | Tauri2.0框架】Tauri2.0环境搭建与项目创建
【一起学Rust | 框架篇 | Tauri2.0框架】Tauri2.0环境搭建与项目创建
209 0
|
4月前
|
JavaScript 前端开发
Nodejs 第六章(npx)
Nodejs 第六章(npx)
44 0
|
10月前
|
前端开发 JavaScript 开发者
前端工程化构建工具之Grunt
在前端工程化构建工具中,Grunt是一个非常流行的开源工具。
109 0
|
11月前
|
JSON 数据格式
脚手架开发入门
# 引言 今天和大家一起学习一下开发一个脚手架工具,作为我们初始化项目使用,因为我们组件库开发已经接近尾声了,接下来我们想除了正常通过npm下载引入配置之余,能提供一种更方便的模板初始化的途径,现在就让我们一起学习一下如何开发一个脚手架工具吧。 # 初始化 首先我们初始化一个node项目,创建一个空文件夹,然后我们打开终端控制台,输入如下内容`npm init -y`。初始化一个`package.json`文件,我们默认初始化的文件是这样的: ``` { "name": "demo-cli", "version": "1.0.0", "description": "",
|
前端开发 JavaScript 容器
Vite2 — 初体验
Vite2 — 初体验
171 0
|
JavaScript 前端开发
vite 开发与学习
vite 开发与学习
|
监控 JavaScript 前端开发
Grunt快速入门教程
Grunt入门介绍:中文主页 : http://www.gruntjs.net/ Grun是一套前端自动化构建工具,一个基于nodeJs的命令行工具 Grunt它是一个任务运行器
88 0
|
监控 前端开发 JavaScript
Gulp前端自动化构建工具的应用
实际前端开发不再仅仅是静态页面的开发了,丰富的前端技术让前端的代码逻辑越来越复杂, 模块化开发和各类框架也增加了在生产环境中部署开发环境代码的难度,这种情况下,前端自动化构建在前端开发中尤为重要。 我们会遇到下面的问题: a. 每次修改了HTML、JS、CSS等文件,都需要手动刷新浏览器,能不能修改了让浏览器自动刷新呢 ? b. 在发布项目的时候,需要将前端资源进行合并、压缩,尽量减少http请求,手动去完成合并压缩不仅繁琐,还容易出错,有什么技术可以自动地执行这些操作,解放我们的双手呢?
108 0
Gulp前端自动化构建工具的应用
|
存储 JavaScript 前端开发
grunt入门笔记
grunt在前端工具中算是很有用的一个工具。 想一想如果没有这个工具,我们需要手动新建一个压缩代码后的文件夹,每次修改原始文件,都要手动压缩一下,再保存到压缩后的文件夹,想想都要疯掉。所以,grunt前端必不可少。
94 0
grunt入门笔记
|
Web App开发 Java 测试技术
Gradle从0入门到实战系列【五】工程化之插件
插件可以封装一系列任务,例如 编译,测试,打包等。 IDEA、VsCode、Eclipse、Maven、Chrome等都是支持插件集成的工具。插件意味着扩展,Gradle只要定义好插件规范,各大厂商或个人开发者遵循这个规范就能开发出很多有用的插件,从而丰富Gradle生态。
151 0
Gradle从0入门到实战系列【五】工程化之插件