考虑到项目近期的需要,提前学习了一下 gulp 插件之 less编译、rev-append添加版本号,自然是边学边弄个小项目来实践的啦!
cnpm 淘宝 NPM 镜像
以前一直是通过 npm 来安装插件的,此做法是直接从国外服务器下载插件的,受网络影响大。于是,淘宝便搞了个 cnpm :
“这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。”
详细说明移步官网:
淘宝镜像官网:淘宝 NPM 镜像
安装 cnpm: $ npm install -g cnpm --registry=https://registry.npm.taobao.org
;
安装完成后,查看版本号:cnpm -v
;
使用 cnpm 前,先关闭命令行提示符再重新打开使用;安装完直接使用有可能出现异常。
cnpm 与 npm 完全一致,只是在执行命令时将 npm 改为 cnpm 而已。
初始化准备 目录结构
新建目录 gulp_revLess
,并在该目录下局部安装gulp:
|
|
安装后,目录中出现一个目录 node_modules
、一个文件package.json
。
安装插件:
|
|
安装后,目录 node_modules
下出现了各种插件的对应目录。
这里主要用到的插件功能:less编译成css,css压缩,js代码检查,js压缩,css/js的版本号控制。
再在目录 gulp_revLess
下新建目录dev
(开发目录)、dist
(gulp压缩后目录);新建文件gulpfile.js
;
然后在目录dev
、dist
新建各种代码文件,完成后的目录 gulp_revLess
结构如下:
|
|
说明:目录dev
里面是开发环境的原始代码;目录dist
里面是经过 gulp 处理后的正式环境代码;但:目录jsapp
下的是引用的js类库(如jquery),这些不作压缩处理(会报很多错)。
编写 dev
目录下的代码
在 dev
目录下,分别编写2个css、1个js、1个html文件,其中index.html
中对css/js的引用路径进行后缀处理:?rev=@@hash
初始化的 index.html
代码如下:
|
|
编辑配置文件gulpfile.js
打开gulpfile.js
文件进行配置编辑,直接上代码,里面附有详细注释:
|
|
测试gulp
目前,目录dist
下的css/js
均为空。
现在,在目录gulp_revLess
下执行 gulp
命令,成功后,目录dist
下的css/js
里面已经有了被gulp处理过的css样式/js脚本文件了;而且,此时的index.html
中的路径变成了这样:
|
|
当我们改变并保存了less/js
文件时,被 gulp 监视到并立即执行对应的编译压缩检查改变版本号这些任务。
注意: 当修改保存了有语法错误的js文件时候:
- 语法出错不严重、不影响js运行时,gulp会弹出报错,但仍然会执行压缩并继续监视;如:代码结尾缺少引文分号,则:
|
|
- 语法出错严重,影响js运行时,gulp会报错并终止任务;如:引文分号写成中文分号:
|
|
完了之后,发现要真在项目中应用,其实还有其它好多东西需要配置好的。下回继续学习!