gruntjs開發執行個體

來源:互聯網
上載者:User

gruntjs開發執行個體
Grunt是基於Node.js的項目構建工具。它可以自動運行你所設定的任務,如編譯less,sass,壓縮js,合拼檔案等等。 (一)安裝nodejs環境,Grunt 0.4.x要求Node.js的版本>=0.8.0,如果你已安裝了nodejs,命令列中運行node -v查看你的Node.js版本,如果版本號碼不夠,重新安裝覆蓋舊版本。     (二)如果你的公司是用代理上網,先命令列 npm set proxy=ip地址 ,然後命令列 npm install -g grunt-cli 將grunt植入到你的系統裡面,這樣就允許你從任意目錄來運行它(定位到任意目錄運行grunt命令),安裝grunt-cli並不等於安裝了grunt任務運行器!Grunt CLI的工作很簡單:在Gruntfile所在目錄調用運行已經安裝好的相應版本的Grunt。這就意味著可以在同一台機器上同時安裝多個版本的Grunt   (三)gruntjs的運行是依靠著package.json和Gruntfile.js這兩個檔案配置,在你的項目根目錄建立此 2 個檔案,格式如下:   (1)package.json  在此檔案寫入你項目所依賴的Grunt版本和Grunt外掛程式,例子:    "name": "pcauto",  "version": "0.1.0",  "devDependencies": {    "grunt": "~0.4.5",    "grunt-contrib-less": "~0.11.4",  "grunt-contrib-watch": "~0.6.0"  }}   name :項目的名稱,version:項目的版本號碼(這些都是隨意的),devDependencies:設定grunt版本號碼與各外掛程式 (名城:版本號碼,可以在官網查看相關的名稱與版本號碼),更多外掛程式查看   (2)在此項目根目錄 shift + 右鍵 -> 在此處開啟命令列,npm install          在根目錄自動產生一個 node_modules的檔案夾,裡面就是你需要的grunt外掛程式,到這步 grunt版本與外掛程式都安裝好了,下一步就是配置Gruntfile.js   (3)配置工作流程Gruntfile.js  module.exports = function(grunt) {   // Project configuration.  grunt.initConfig({    pkg: grunt.file.readJSON('package.json'),    less: {            dev: {          files:{            'css/index.css':'less/index.less',            'css/page.css':'less/page.less'          }      }    },    watch:{      less:{          files:['less/*.less'],          tasks:['less']      }    }  });   // 載入包含 "uglify" 任務的外掛程式。  grunt.loadNpmTasks('grunt-contrib-less');  grunt.loadNpmTasks('grunt-contrib-watch');   // 預設被執行的工作清單。  grunt.registerTask('default', ['less','watch']); };   【1】pkg: grunt.file.readJSON('package.json')  就是把在剛配置好的json資料匯入到Grunt配置中   【2】外掛程式調用配置 less: {            dev: {          files:{            'css/index.css':'less/index.less',            'css/page.css':'less/page.less'          }      }}    手動設定:調用配置,less 中,指定了名為dev(自訂,必需)的任務,然後執行多檔案處理,格式為 files:{'xxxx輸出的css檔案路徑與檔案名稱':'xxx你所編寫的less檔案','xxxx':'xxxxx'}   自動匹配模式  less: {      dev: {        files: [{          expand: true,          cwd: 'less/',          src: ['*.less'],          dest: 'css/',          ext: '.css'        }]      }}  更詳細的配置      為了避免每次編譯都要運行一個命令列,這裡有個很好的外掛程式 watch,它能即時監控(如例子中在watch任務中監控less檔案夾下的所有less檔案,一旦代碼有發生改變,就自動執行less編譯任務,就不需要每次運行 grunt命令列。註:開始只需要運行一次 grunt命令列,然後視窗不要關閉,保持開啟的狀態,如。)   【3】載入任務外掛程式   grunt.loadNpmTasks('grunt-contrib-less');  grunt.loadNpmTasks('grunt-contrib-watch');   【4】定義被執行的工作清單   grunt.registerTask('default', ['less','watch']);   (預設任務,如果你的名稱是 grunt.registerTask('yong', ['less','watch']),那麼在下一步中運行命令列就是grunt yong)    到這裡,已經全部都配置好,下一步就是運行 (四)在此項目根目錄 shift + 右鍵 -> 在此處開啟命令列,grunt      在之前的時代,編譯less,壓縮檔,與合拼檔案,都需要藉助不同的工具逐個逐個任務執行完成,效率很低,如今有了 Grunt,一切都自動化。   貼上一個配置例子,僅供參考: package.json  {  "name": "pcauto",  "version": "0.1.0",  "devDependencies": {    "grunt": "~0.4.5",    "grunt-contrib-less": "~1.0.0",    "grunt-contrib-uglify": "~0.7.0",    "grunt-contrib-imagemin":"~0.9.0",    "grunt-contrib-cssmin": "~0.7.0",    "grunt-contrib-watch": "~0.6.0"  }}   Gruntfile.js  module.exports = function(grunt) {   // Project configuration.  grunt.initConfig({    pkg: grunt.file.readJSON('package.json'),    //less編譯為css    less: {      dev: {        files: [{          expand: true,          cwd: 'src/less/',          src: ['*.less'],          dest: 'src/css/',          ext: '.css'        }]      }    },    //css檔案壓縮    cssmin:{      dev:{       files: [{          expand: true,          cwd: 'src/css/',          src: ['*.css', '!*.min.css'],          dest: 'css/',          ext: '.min.css'        }]      }    },    //壓縮js檔案    uglify:{      options: {        banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd hh:mm") %> */\n'      },      dev:{        files:[{          expand:true,          cwd:'src/js/',          src:'*.js',          dest:'js/',          ext: '.min.js'        }]      }    },    //圖片壓縮    imagemin:{      dev:{        files:[{         expand: true,                            cwd: 'src/image/',                             src: ['*.{png,jpg}'],             dest: 'image/'                          }]      }    },    //即時監控任務    watch:{      less:{          files:['src/less/*.less'],          tasks:['less']      },      uglify:{          files:['src/js/*.js'],          tasks:['uglify']      },      cssmin:{          files:['src/css/*.css'],          tasks:['cssmin']      },      imagemin:{          files:['src/image/*.{png,jpg}'],          tasks:['imagemin']      }    }  });   // 載入包含 "uglify" 任務的外掛程式。  grunt.loadNpmTasks('grunt-contrib-less');  grunt.loadNpmTasks('grunt-contrib-watch');  grunt.loadNpmTasks('grunt-contrib-uglify');  grunt.loadNpmTasks('grunt-contrib-cssmin');  grunt.loadNpmTasks('grunt-contrib-imagemin');   // 預設被執行的工作清單。  grunt.registerTask('default', ['less','cssmin','uglify','imagemin','watch']); };

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.