1. 程式人生 > >gulp指南(一)

gulp指南(一)

還得 技術分享 archive n) pre name task registry ini

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指南(一)