Node.js的項目構(gòu)建工具Grunt的安裝與配置教程
Grunt 基于 Node.js ,用 JS 開發(fā),這樣就可以借助 Node.js 實現(xiàn)跨系統(tǒng)跨平臺的桌面端的操作,例如文件操作等等。此外,Grunt 以及它的插件們,都作為一個 包 ,可以用 NPM 安裝進行管理。
所以 NPM 生成的 package.json 項目文件,里面可以記錄當(dāng)前項目中用到的 Grunt 插件,而 Grunt 會調(diào)用 Gruntfile.js 這個文件,解析里面的任務(wù)(task)并執(zhí)行相應(yīng)操作。
安裝 Grunt-cli
其實是安裝 Grunt-cli ,這里安裝Grunt的命令行支持(command line interface,簡稱CLI),在這之后,命令提示符中將會識別grunt命令。安裝grunt-cli 并不能稱為安裝Grunt完畢。這是因為,Grunt本身不是全局使用的,任何具體的工作目錄,如果要使用Grunt,都需要安裝一次Grunt。這樣做也是因為不同的工作目錄,需要通過Grunt做的自動化工作也不同,因此需要獨立配置。
npm install -g grunt-cli
—save-dev 參數(shù),表示會把剛安裝的東西添加到 package.json 文件中。
生成 package.json 文件
npm對工作目錄有一個要求。這個要求是:根目錄位置處有一個package.json
文件。這個文件定義了工作目錄對應(yīng)的一些項目信息(名字,描述),以及包(就是npm模塊)依賴關(guān)系。
執(zhí)行下面命令便可以初始化
npm init
為當(dāng)前工作目錄安裝Grunt和需要的插件
方法1
之前我們把Grunt安裝到了全局目錄下,現(xiàn)在需要引入到當(dāng)前項目路徑,與此同時,所需要的插件可能有這些:
合并文件:grunt-contrib-concat
語法檢查:grunt-contrib-jshint
Scss 編譯:grunt-contrib-sass
壓縮文件:grunt-contrib-uglify
監(jiān)聽文件變動:grunt-contrib-watch
建立本地服務(wù)器:grunt-contrib-connect
安裝它們的方式可以是:
npm install --save-dev grunt npm install --save-dev 插件1 插件2 插件3
這個時候package.json文件夾里多出了一些代碼。
"devDependencies": { "grunt": "0.4.1" },
方法2-手動更改package.json
"devDependencies": { "grunt": "~0.4.1", "grunt-contrib-cssmin": "~0.7.0" }
手動在package.json文件里面添加這個字段,將需要依賴的包添加進去,如果只需安裝最新版本,可以改成 * ,然后執(zhí)行npm install,會發(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'); // 注冊任務(wù) grunt.registerTask('default', ['cssmin', 'imagemin', 'uglify']); };
grunt.loadNpmTasks()是加載插件任務(wù)。其實就是說,你如果要使用哪個插件的功能,請在這部分用這句代碼把插件任務(wù)添加進去。
grunt.registerTask()是注冊任務(wù),默認(rèn)有一個default。默認(rèn)的意思就是說,你最后使用的時候,在目錄的命令提示符里直接輸入grunt便可以執(zhí)行注冊的任務(wù),相當(dāng)于執(zhí)行了default這個任務(wù)。
使用自定義任務(wù)
可以注冊更多的任務(wù)命令,使用其他的命名。比如
grunt.registerTask('custom', ['cssmin', 'imagemin']);
對應(yīng)使用的時候,輸入:
grunt custom
相關(guān)文章
node.js中的console.timeEnd方法使用說明
這篇文章主要介紹了node.js中的console.timeEnd方法使用說明,本文介紹了console.timeEnd的方法說明、語法、使用實例和實現(xiàn)源碼,需要的朋友可以參考下2014-12-12Nest.js參數(shù)校驗和自定義返回數(shù)據(jù)格式詳解
這篇文章主要給大家介紹了關(guān)于Nest.js參數(shù)校驗和自定義返回數(shù)據(jù)格式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03webstorm中配置nodejs環(huán)境及npm的實例
今天小編就為大家分享一篇webstorm中配置nodejs環(huán)境及npm的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05Windows中安裝nvm進行Node版本控制與詳細(xì)使用教程
nvm和npm都是node.js版本管理工具,但是為了解決node各種不同之間版本存在不兼容的問題,因此可以通過nvm安裝和切換不同版本的node,感興趣的可以了解一下2023-09-09node.js報錯:npm?ERR?code?EPERM的解決過程
在學(xué)習(xí)vue+typescript的時候突然發(fā)現(xiàn)了個錯誤,所以下面這篇文章主要給大家介紹了關(guān)于node.js報錯:npm?ERR?code?EPERM的詳細(xì)解決過程,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08nodejs報digital?envelope?routines::unsupported錯誤的最新解決方法
這篇文章主要介紹了nodejs報digital?envelope?routines::unsupported錯誤的最新解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02