一:安裝node
npm是隨nodeJs安裝包一塊兒安裝的包管理工具,能解決NodeJS代碼部署上的不少問題;npm
常見的使用場景有如下幾種:json
3.完成npm安裝後,進行安裝gruntwindows
輸入命令:npm install -g grunt-cli,按下回車鍵,npm將會從線上自動爲咱們尋找安裝所須要的包服務器
2.使用命令:npm init,初始化grunt項目爲grunt項目生成package.jsonapp
執行完命令後,會在項目根目錄下生成package.json文件,文件內容以下圖2函數
3.輸入命令:npm install grunt --save-dev,將grunt的最新版本安裝到項目的根目錄中,並將其添加到package.json的devDependencies內grunt
4.使用命令:npm install <module> --save-dev 安裝相應的插件,<module>則是插件的名字,命令執行完後,會在package.json的devDependencies內加入相應插件的版本號工具
目前我只測試了合併和壓縮兩個插件:學習
合併任意文件:grunt-contrib-concat,輸入命令:npm install grunt-contrib-concat --save-dev
合併壓縮js代碼:grunt-contrib-uglify,輸入命令:npm install grunt-contrib-uglify --save-dev
能夠看到在命令運行結束後,package.json文件的devDependencies內多了這兩項
5.在項目的根目錄下與package.json同級新建Gruntfile.js文件
此文件由「wrapper」函數、項目與任務配置、加載grunt任務和插件、自定義任務
module.exports = function (grunt) {/*************「wrapper」函數*************/ grunt.initConfig({/**************項目和任務配置**********/ pkg: grunt.file.readJSON('package.json'),//引入package.json文件,並可經過pkg.調用package.json中定義的配置 //合併文件 concat: { options: { //定義一個用於插入合併輸出文件之間的字符 separator: ';' }, dist: { // 將要被合併的文件 src: ['src/js/*.js'], // 合併後的JS文件的存放位置 dest:'min/js/<%= pkg.name %>.js' } }, //壓縮文件 uglify: { options: { //壓縮後的文件生成的註釋 banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n' }, dist: { files: { //將concat合併後的文件進行壓縮 'min/js/<%= pkg.name %>.min.js' : ['<%= concat.dist.dest %>'] } } } }) /*****************加載grunt插件和任務******************/ grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-uglify'); /******************自定義任務*******************************/ grunt.registerTask('default',['concat','uglify']) }
6.在命令行中執行grunt命令,將會進行執行,grunt命令只會執行任務default的任務,其餘任務執行須要加上任務名,好比grunt test
先看看執行命令前各文件的狀態
在min下面並無任何文件夾和文件,a.js和b.js中的內容以下圖:
執行命令後:
輸入命令:grunt
再看看項目的變化:
在min文件夾下生成了一個js文件夾,並在裏面生成了grunt_project.js和grunt_project.min.js,grunt_project.js爲a.js和b.js合併後的內容結果,grunt_project.min.js爲合併後的結果壓縮後的內容結果
到這裏,簡單的grunt構建工具已經完成了,是一個很是大的收穫,它還有不少不少的屬性,將要學習,加油!!!