前端发展到今天,ui组件库比比皆是,但为了提高下自个人业务及基础能力,仍是决定造个ui框架轮子,顺带把工做的经常使用的一些整合下,那也是一种沉淀与分享。
而后针对 ui 组件的写法,选择less,而后采用gulp来编译及输出,也许你们会疑惑,为何不用webpack,为了与单位项目进行无缝切合吧,忘记说了,咱们如今的项目是卫星项目(很高端的),为了调试方便,采用了seaJS来进行模块化的。这个H5项目没有采用线下流行的webpack。css
一、支持nodeJS环境html
npm init
生成package.json。
备注:由于我这仅仅是开发环境的,因此安装包的时候,都采用了 --save-dev 。前端
二、安装 gulpnode
npm install --save-dev gulp
三、安装gulp-lesswebpack
npm install --save-dev gulp-less
在gulpfile.js中写入
var gulp = require('gulp'); var less = require('gulp-less'); gulp.task('less', function(){ gulp.src('less/*.less') .pipe(less()) .pipe(gulp.dest('dist/css')) });
执行结果以下
图片描述
仔细看竟然有报错,百度了下,是gulp4.0 带来的。
从新改写代码:web
var gulp = require('gulp'); var less = require('gulp-less');
gulp.task('less', function(done){npmgulp.src('less/*.less') .pipe(less()) .pipe(gulp.dest('dist/css')) done() });
妥妥的好了。json
四、安装gulp-concatgulp
npm install --save-dev gulp-concat
在gulpfile.js中写入框架
var gulp = require('gulp'); var less = require('gulp-less'); gulp.task('less', function(done){ gulp.src('less/*.less') .pipe(concat('style.css')) .pipe(less()) .pipe(gulp.dest('dist/css')) done(); });
五、安装gulp-minify-css
npm install --save-dev gulp-minify-css
在gulpfile.js 中写入
gulp.task('less',function(done){
gulp.src('less/*.less') .pipe(concat('style.css')) .pipe(minifyCss()) .pipe(gulp.dest('dist/css')); done(); });
六、安装gulp-rename
npm install --save-dev gulp-rename
在gulpfile.js 中写入
gulp.task('less',function(done){
gulp.src('less/*.less') .pipe(concat('style.css')) .pipe(minifyCss()) .pipe(rename('style.min.css')) .pipe(gulp.dest('dist/css')); done(); });
七、安装 gulp-liverelaod 自动刷新
npm install --save-dev gulp-livereload
在 gulpfile.js 中写入
gulp.task('watch', function(){
livereload.listen(); gulp.watch('less/*.less', gulp.series('less')); });
八、提取 输入,输出文件夹
npm install --save-dev path
在 gulpfile.js 中写入
var path = require('path'); var basePath = path.resolve(__dirname,
'');//-项目路径 var src = basePath + '/less/*.less',output = basePath + '/dist/css';
九、安装 gulp-clean 清空文件夹
npm install --save-dev gulp-clean
在 gulpfile.js 中写入
gulp.task('clean', function(done){
return gulp.src(output, {read: false}) .pipe(clean({force: true})); });
十、合并各个任务
在 gulpfile.js 中写入
gulp.task('dev', gulp.series('clean', 'less', 'watch', function (done)
{done(); }));
一个基于gulp的less编译环境已经完成了,经过watch能够监听到less中变化,并实时进行编译、合并、压缩。后期已经将 js以及html的一些也加进去,应该分dev版本与pro版本。