gulp指南(一)
npm介紹
1、npm(node package manager)是nodejs的包管理器,用於node插件管理(包括安裝、卸載、管理依賴等);
2、使用npm安裝插件:
npm install <name> [-g] [--save-dev]
2.1、<name>:node插件名稱。例:npm install gulp-less --save-dev
2.2、-g:全局安裝。將會安裝在C:\Users\Administrator\AppData\Roaming\npm
,並且寫入系統環境變量; 非全局安裝:將會安裝在當前定位目錄; 全局安裝可以通過命令行在任何地方調用它,本地安裝將安裝在定位目錄的node_modules文件夾下,通過require()調用;
2.3、--save
:將保存配置信息至package.json(package.json是nodejs項目配置文件);
2.4、-dev:保存至package.json的devDependencies節點,不指定-dev將保存至dependencies節點;一般保存在dependencies的像這些express/ejs/body-parser等等。
2.5、為什麽要保存至package.json?因為node插件包相對來說非常龐大,所以不加入版本管理,將配置信息寫入package.json並將其加入版本管理,其他開發者對應下載即可(命令提示符執行npm install,則會根據package.json下載所有需要的包,npm install --production
只下載dependencies節點的包)。
3、使用npm卸載插件:
npm uninstall <name> [-g] [--save-dev]
PS:不要直接刪除本地插件包
刪除全部插件:
npm install rimraf -g rimraf node_modules
4、使用npm更新插件:
npm update <name> [-g] [--save-dev]
更新全部插件:
npm update [--save-dev]
5、查看npm幫助:
npm help
6、當前目錄已安裝插件:
npm list
安裝cnpm
安裝cnpm:
npm install cnpm -g --registry=https://registry.npm.taobao.org
查看版本號:
cnpm -v
註:cnpm跟npm用法完全一致,只是在執行命令時將npm改為cnpm。
全局安裝gulp
全局安裝gulp:
cnpm install gulp -g
查看版本號:
gulp -v
新建package.json文件
創建package.json文件:
cnpm init
查看package.json幫助文檔:
cnpm help package.json
註意:package.json是一個普通json文件,所以不能添加任何註釋。
本地安裝gulp插件
安裝
cnpm install --save-dev
本示例以gulp-less為例(編譯less文件),命令提示符執行:
cnpm install gulp-less --save-dev
將會安裝在node_modules的gulp-less目錄下,該目錄下有一個gulp-less的使用幫助文檔README.md;
為了能正常使用,我們還得本地安裝gulp:
cnpm install gulp --save-dev
全局安裝了gulp,項目也安裝了gulp,全局安裝gulp是為了執行gulp任務,本地安裝gulp則是為了調用gulp插件的功能。
新建gulpfile.js文件(重要)
說明:gulpfile.js是gulp項目的配置文件,是位於項目根目錄的普通js文件;
//導入工具包 require(‘node_modules裏對應模塊‘) var gulp = require(‘gulp‘), //本地安裝gulp所用到的地方 less = require(‘gulp-less‘); //定義一個testLess任務(自定義任務名稱) gulp.task(‘testLess‘, function () { gulp.src(‘src/less/index.less‘) //該任務針對的文件 .pipe(less()) //該任務調用的模塊 .pipe(gulp.dest(‘src/css‘)); //將會在src/css下生成index.css }); gulp.task(‘default‘,[‘testLess‘, ‘elseTask‘]); //定義默認任務 elseTask為其他任務,該示例沒有定義elseTask任務 //gulp.task(name[, deps], fn) 定義任務 name:任務名稱 deps:依賴任務名稱 fn:回調函數 //gulp.src(globs[, options]) 執行任務處理的文件 globs:處理的文件路徑(字符串或者字符串數組) //gulp.dest(path[, options]) 處理完後文件生成路徑
然後在命令窗口直接運行gulp:
gulp
gulp指南(一)