最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js的項(xiàng)目構(gòu)建工具Grunt的安裝與配置教程

 更新時(shí)間:2016年05月12日 17:55:29   作者:LuckyJing  
Grunt是為Node打造的項(xiàng)目構(gòu)建工具,相當(dāng)于C/C++世界中的makefile,可以執(zhí)行像壓縮、編譯、單元測(cè)試、代碼檢查以及打包發(fā)布的任務(wù),下面我們就來一起看一下Node.js的項(xiàng)目構(gòu)建工具Grunt的安裝與配置教程:

Grunt 基于 Node.js ,用 JS 開發(fā),這樣就可以借助 Node.js 實(shí)現(xiàn)跨系統(tǒng)跨平臺(tái)的桌面端的操作,例如文件操作等等。此外,Grunt 以及它的插件們,都作為一個(gè) 包 ,可以用 NPM 安裝進(jìn)行管理。
所以 NPM 生成的 package.json 項(xiàng)目文件,里面可以記錄當(dāng)前項(xiàng)目中用到的 Grunt 插件,而 Grunt 會(huì)調(diào)用 Gruntfile.js 這個(gè)文件,解析里面的任務(wù)(task)并執(zhí)行相應(yīng)操作。

安裝 Grunt-cli
其實(shí)是安裝 Grunt-cli ,這里安裝Grunt的命令行支持(command line interface,簡稱CLI),在這之后,命令提示符中將會(huì)識(shí)別grunt命令。安裝grunt-cli 并不能稱為安裝Grunt完畢。這是因?yàn)?,Grunt本身不是全局使用的,任何具體的工作目錄,如果要使用Grunt,都需要安裝一次Grunt。這樣做也是因?yàn)椴煌墓ぷ髂夸?,需要通過Grunt做的自動(dòng)化工作也不同,因此需要獨(dú)立配置。

npm install -g grunt-cli

—save-dev 參數(shù),表示會(huì)把剛安裝的東西添加到 package.json 文件中。

生成 package.json 文件
npm對(duì)工作目錄有一個(gè)要求。這個(gè)要求是:根目錄位置處有一個(gè)package.json
文件。這個(gè)文件定義了工作目錄對(duì)應(yīng)的一些項(xiàng)目信息(名字,描述),以及包(就是npm模塊)依賴關(guān)系。
執(zhí)行下面命令便可以初始化

npm init

為當(dāng)前工作目錄安裝Grunt和需要的插件
方法1
之前我們把Grunt安裝到了全局目錄下,現(xiàn)在需要引入到當(dāng)前項(xiàng)目路徑,與此同時(shí),所需要的插件可能有這些:

合并文件:grunt-contrib-concat
語法檢查:grunt-contrib-jshint
Scss 編譯:grunt-contrib-sass
壓縮文件:grunt-contrib-uglify
監(jiān)聽文件變動(dòng):grunt-contrib-watch
建立本地服務(wù)器:grunt-contrib-connect
安裝它們的方式可以是:

npm install --save-dev grunt
npm install --save-dev 插件1 插件2 插件3

這個(gè)時(shí)候package.json文件夾里多出了一些代碼。

"devDependencies": {
 "grunt": "0.4.1"
},

方法2-手動(dòng)更改package.json

"devDependencies": {
  "grunt": "~0.4.1",
  "grunt-contrib-cssmin": "~0.7.0"
 }

手動(dòng)在package.json文件里面添加這個(gè)字段,將需要依賴的包添加進(jìn)去,如果只需安裝最新版本,可以改成 * ,然后執(zhí)行npm install,會(huì)發(fā)現(xiàn)文件夾里多了node_modules文件夾,里面存放的就是我們需要的插件。

配置
一般來說,直接使用模板作為配置文件。

module.exports = function(grunt) {
 "use strict";
 grunt.initConfig({
 //插件配置區(qū)域
 });
 //加載插件任務(wù),要使用誰就添加誰
 grunt.loadNpmTasks('grunt-contrib-uglify');
 grunt.loadNpmTasks('grunt-contrib-cssmin');
 grunt.loadNpmTasks('grunt-contrib-imagemin');
 // 注冊(cè)任務(wù)
 grunt.registerTask('default', ['cssmin', 'imagemin', 'uglify']);
};

grunt.loadNpmTasks()是加載插件任務(wù)。其實(shí)就是說,你如果要使用哪個(gè)插件的功能,請(qǐng)?jiān)谶@部分用這句代碼把插件任務(wù)添加進(jìn)去。
grunt.registerTask()是注冊(cè)任務(wù),默認(rèn)有一個(gè)default。默認(rèn)的意思就是說,你最后使用的時(shí)候,在目錄的命令提示符里直接輸入grunt便可以執(zhí)行注冊(cè)的任務(wù),相當(dāng)于執(zhí)行了default這個(gè)任務(wù)。

使用自定義任務(wù)
可以注冊(cè)更多的任務(wù)命令,使用其他的命名。比如

grunt.registerTask('custom', ['cssmin', 'imagemin']);

對(duì)應(yīng)使用的時(shí)候,輸入:

grunt custom

相關(guān)文章

  • node+vue實(shí)現(xiàn)用戶注冊(cè)和頭像上傳的實(shí)例代碼

    node+vue實(shí)現(xiàn)用戶注冊(cè)和頭像上傳的實(shí)例代碼

    本篇文章主要介紹了node+vue實(shí)現(xiàn)用戶注冊(cè)和頭像上傳的實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07
  • Nodejs 構(gòu)建Cluster集群多線程Worker threads

    Nodejs 構(gòu)建Cluster集群多線程Worker threads

    這篇文章主要為大家介紹了Nodejs 構(gòu)建Cluster集群多線程Worker threads示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 詳解Node.js中path模塊的resolve()和join()方法的區(qū)別

    詳解Node.js中path模塊的resolve()和join()方法的區(qū)別

    這篇文章主要介紹了詳解Node.js中path模塊的resolve()和join()方法的區(qū)別,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • 我用的一些Node.js開發(fā)工具、開發(fā)包、框架等總結(jié)

    我用的一些Node.js開發(fā)工具、開發(fā)包、框架等總結(jié)

    這篇文章主要介紹了我個(gè)人使用的一些Node.js開發(fā)工具、開發(fā)包、框架等總結(jié),需要的朋友可以參考下
    2014-09-09
  • Node.js使用定時(shí)器的三種方法

    Node.js使用定時(shí)器的三種方法

    在Node.js中使用定時(shí)器是一項(xiàng)常見且重要的任務(wù),本文主要介紹了Node.js使用定時(shí)器的三種方法,包括setTimeout、setInterval和setImmediate等方法,感興趣的可以了解一下
    2024-02-02
  • Node.js連接數(shù)據(jù)庫實(shí)現(xiàn)過程詳解

    Node.js連接數(shù)據(jù)庫實(shí)現(xiàn)過程詳解

    這篇文章主要為大家介紹了Node.js連接數(shù)據(jù)庫實(shí)現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • nvm安裝步驟及使用方法

    nvm安裝步驟及使用方法

    nvm是一個(gè)管理nodejs版本的工具。在實(shí)際的開發(fā)中,有些項(xiàng)目的開發(fā)依賴需要低版本的nodejs運(yùn)行環(huán)境,有些則需要高版本的nodejs,此時(shí)我們就需要使用nvm來切換nodejs版本,接下來通過本文給大家講解nvm安裝步驟及使用方法,感興趣的朋友一起看看吧
    2023-01-01
  • Node.js使用Express.Router的方法

    Node.js使用Express.Router的方法

    這篇文章主要為大家詳細(xì)介紹了Node.js使用Express.Router的方法 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 深入淺析Node.js單線程模型

    深入淺析Node.js單線程模型

    Node.js采用 事件驅(qū)動(dòng) 和 異步I/O 的方式,實(shí)現(xiàn)了一個(gè)單線程、高并發(fā)的運(yùn)行時(shí)環(huán)境,而單線程就意味著同一時(shí)間只能做一件事,那么Node.js如何利用單線程來實(shí)現(xiàn)高并發(fā)和異步I/O?本文將圍繞這個(gè)問題來探討Node.js的單線程模型
    2017-07-07
  • 利用Chrome DevTools直接調(diào)試Node.js和JavaScript的方法詳解(并行)

    利用Chrome DevTools直接調(diào)試Node.js和JavaScript的方法詳解(并行)

    現(xiàn)在我們可以用瀏覽器調(diào)試node.js了!!!下面這篇文章主要介紹了利用Chrome DevTools直接調(diào)試Node.js和JavaScript的方法步驟,文中介紹的很詳細(xì),需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。
    2017-02-02

最新評(píng)論

梅河口市| 叶城县| 织金县| 安乡县| 凌云县| 五指山市| 旬阳县| 承德市| 镇沅| 台中市| 江城| 山西省| 绥滨县| 全南县| 苏尼特左旗| 恭城| 互助| 威信县| 洛扎县| 五指山市| 塔河县| 安多县| 古丈县| 互助| 文昌市| 滦平县| 新津县| 肇州县| 岚皋县| 舟山市| 鲜城| 宜州市| 五峰| 英德市| 绥化市| 宜良县| 肥城市| 关岭| 诏安县| 平果县| 城固县|