Grunt 學(xué)習(xí)筆記 The JavaScript Task Runner

GRUNT: The JavaScript Task Runner
JavaScript 任務(wù)執(zhí)行器,類似于 Java 中的 Ant 和 Maven。
Grunt 的生態(tài)系統(tǒng)很大,包括很多的插件。

為什么需要 Task Runner

簡(jiǎn)而言之:自動(dòng)化。
在執(zhí)行一些重復(fù)性的工作時(shí),例如代碼壓縮,編譯,單元測(cè)試,代碼質(zhì)量檢測(cè)等等,Task Runner 使得用戶的操作更簡(jiǎn)單。
通過配置 Gruntfile 文件,Task Runner 可以自動(dòng)執(zhí)行相關(guān)的任務(wù)。

Grunt 的使用

Grunt 的安裝

通過 Node 來安裝 Grunt。
package.json 文件的 devDependencies 屬性中配置 Grunt 及相應(yīng)插件的版本。隨后執(zhí)行命令 npm install

package.json 文件

package.json 文件的規(guī)范參考 https://docs.npmjs.com/files/package.json

package.json 文件位于項(xiàng)目的根目錄,與 Gruntfile.js 文件并列。
執(zhí)行 npm install 命令來安裝對(duì)應(yīng)版本的 Grunt 及相應(yīng)插件。

package.json 文件示例如下:

{
  "name": "my-project-name",
  "version": "0.1.0",
  "devDependencies": {
    "grunt": "~0.4.5",
    "grunt-contrib-jshint": "~0.10.0",
    "grunt-contrib-nodeunit": "~0.4.1",
    "grunt-contrib-uglify": "~0.5.0"
  }
}

Gruntfile.js 文件

Gruntfile.js 文件包含4個(gè)部分:

  • The "wrapper" function
    如下:
module.exports = function(grunt) {
  // Do grunt-related things in here
};
  • Project and task configuration 任務(wù)的配置
  • Loading Grunt plugins and tasks
  • Custom tasks 自定義任務(wù)
    如下:
grunt.registerTask('unittest', [
    'clean:build',
    'mkdir:build',
    'copy:build',
    'karma:unit'
]);

一個(gè)完整的示例如下:

module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
      },
      build: {
        src: 'src/<%= pkg.name %>.js',
        dest: 'build/<%= pkg.name %>.min.js'
      }
    }
  });

  // Load the plugin that provides the "uglify" task.
  grunt.loadNpmTasks('grunt-contrib-uglify');

  // Default task(s).
  grunt.registerTask('default', ['uglify']);

};

關(guān)于任務(wù)的創(chuàng)建,可以參考 Creating tasks


引用:
Grunt 官網(wǎng)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評(píng)論 19 139
  • 快速入門 Grunt和 Grunt 插件是通過 npm 安裝并管理的,npm是 Node.js 的包管理器。Gru...
    你不知道的你我不知道的我閱讀 415評(píng)論 0 0
  • 對(duì)網(wǎng)站資源進(jìn)行優(yōu)化,并使用不同瀏覽器測(cè)試并不是網(wǎng)站設(shè)計(jì)過程中最有意思的部分,但是這個(gè)過程中的很多重復(fù)的任務(wù)能夠使用...
    懵逼js閱讀 1,163評(píng)論 0 8
  • Grunt配置 Grunt的task配置都是在 Gruntfile 中的grunt.initConfig方法中指定...
    慢狍子閱讀 593評(píng)論 0 1
  • 那天晚上,你從長治來到了家里,小小的毛茸茸的,兩只黃黃的耳朵耷拉在腦袋兩邊,一碗水你喝了大半碗,拉了好幾堆。 ...
    kkll123閱讀 263評(píng)論 0 0

友情鏈接更多精彩內(nèi)容