去官網下載exe執行文件安裝便可,安裝完成後自帶有npm管理。css
在項目根文件夾下執行以下代碼:html
npm install -g grunt-cli
npm install grunt --save-dev
Gruntfile.js
首先須要往項目裏添加兩個文件:package.json
和Gruntfile.js
;前端
若是你從其它項目中拷貝了這2個文件,能夠執行npm install直接安裝。node
其中package.json文件的自動生成:web
npm init
用於模塊配置,它接受一個對象做爲參數。該對象的成員與使用的同名模塊一一對應。npm
每一個目標的具體設置,須要參考該模板的文檔。就cssmin來說,minify目標的參數具體含義以下:json
grunt.initConfig:定義各類模塊的參數,每個成員項對應一個同名模塊。
grunt.loadNpmTasks:加載完成任務所需的模塊。
grunt.registerTask:定義具體的任務。第一個參數爲任務名,第二個參數是一個數組, 表示該任務須要依次使用的模塊。數組
經常使用模塊插件的安裝方式,進入插件地址搜索想用的插件名稱,而後進去查看使用方式,這兒不作介紹。sass
插件地址:http://gruntjs.com/pluginsbabel
實例需求:須要先把ES6語法轉換成ES5,而後經過uglify壓縮全部的js。(全部文件在src目錄下,裏面須要轉換的ES6的語法只在某個文件夾下指定文件t.js)。
思路以下:先拷貝全部的src裏面的內容到dist文件夾下,在dist文件夾下進行語法轉換,再進行js壓縮,其中Gruntfile.js配置以下:
module.exports = function(grunt) { //配置參數 grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), watch: { js: { files:['src/**/*.js'], tasks:['default'], options: {livereload:false} }, babel:{ files:'src/**/*.js', tasks:['babel'] } }, jshint:{ build:['src/**/*.js'], options:{ jshintrc:'.jshintrc' //檢測JS代碼錯誤要根據此文件的設置規範進行檢測,能夠本身修改規則 } }, copy: { main: { expand: true, cwd: 'src', src: '**', dest: 'dist/', }, }, babel: { options: { sourceMap: false, presets: ['babel-preset-es2015'] }, dist: { files: [{ expand:true, cwd:'dist/', //js目錄下 src:['**/t.js'], //全部js文件 dest:'dist/' //輸出到此目錄下 }] } }, uglify: { options: { mangle: true, //混淆變量名 comments: 'false' //false(刪除所有註釋),some(保留@preserve @license @cc_on等註釋) }, my_target: { files: [{ expand:true, cwd:'dist/', //js目錄下 src:['**/*.js'], //全部js文件 dest:'dist/' //輸出到此目錄下 }] } } }); //載入uglify插件,壓縮js grunt.loadNpmTasks('grunt-contrib-copy'); grunt.loadNpmTasks('grunt-babel'); //grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-watch'); //註冊任務 grunt.registerTask('default', ['copy','babel','uglify']); grunt.registerTask('watcher',['watch']); }
固然還有一種思路以下:
首先把須要轉換的ES6的js經過src目錄下,轉換到一箇中間目錄,如babel目錄下,而後壓縮操做執行兩部分,第一部分就是除原src路徑下的ES6的js,其它都壓縮到dist中,第二部分就是壓縮中間目錄label下的js,以下配置,只寫部分:
babel: { options: { sourceMap: false, presets: ['babel-preset-es2015'] }, dist: { files: [{ expand:true, cwd:'src/', //js目錄下 src:['**/t.js'], //全部js文件 dest:'babel/' //輸出到此目錄下 }] } }, uglify: { options: { mangle: true, //混淆變量名 comments: 'false' //false(刪除所有註釋),some(保留@preserve @license @cc_on等註釋) }, my_target: { files: [{ expand:true, cwd:'babel', //js目錄下 src:['**/*.js'], //全部js文件 dest:'dist/' //輸出到此目錄下 }] }, allother:{ files: [{ expand:true, cwd:'src/', //js目錄下 src:['**/*.js','!t.js'], //全部js文件 dest:'dist/' //輸出到此目錄下 }] } }
若是須要詳細瞭解用grunt搭建web前端開發環境,地址:http://www.cnblogs.com/moqiutao/p/5316336.html