gulpベースのフロントエンド自動学習記録
7049 ワード
前に書く
個人学習記録は、配置が間違っている可能性がありますので、ご教示ください.
インストールgulp
まずグローバルインストール:
$npm install gulp -g
指定したディレクトリの下にgulpをインストールして開発依存として併存する
$npm install gulp --save-dev
挿入の説明:--saveと--save-dev--saveは実行依存として保存されます(アプリケーションの起動に必要です)--save-devは開発依存として保存されます(ソースコードの変更に必要です).
gulp初期化
ディレクトリにgulpfileを作成する.jsのファイル保存gulpの構成説明:
var gulp=require('gulp') // gulp
gulp.task('default',function(){
//something
});
//
gulpイベントの説明
gulp.src('src/**/*.js')
// src ( ) js
('src/*.js')
.pipe(some require) //
.pipe(gulp.dest('publice/js'))//
gulp.watch('src/*.js',['//some task'])//watch , task
gulpは非同期呼び出しを構成したり、promiseオブジェクトを宣言したりすることもできますが、個人的な感覚では一般的には使用できません.必要に応じてドキュメントを表示できます.gulp中国語api
gulp構成例
まずgulpベースのプラグイン名と説明がよく使われるかもしれません
Lessコンパイルと圧縮の設定
Lessコンパイルインストールgulp-less
$ npm install gulp-less --save-dev
less自動コンパイルの構成
var gulp=require('gulp');
var less=require('gulp-less');
gulp.task('less',function(){
return gulp.src('less/*.less')
.pipe(less()) //READE.ME ,
.pipe(gulp.dest('publice/css/'));
});
gulp.task('lessWatch',function(){
gulp.watch('less/*.less',['less']);// less less ( )
});
gulp.task('default',['lessWatch'])// less
以上が最も簡単なgulp-lessベースのless自動コンパイル構成です.次に、gulp-clean-cssベースのgulp-clean-cssを圧縮しながらコンパイルする方法を見てみましょう.
$ npm install gulp-clean-css
上記のプロファイルにgulp-clean-cssを加えて単独で使用する場合はREADMEドキュメントを参照してください
var gulp=require('gulp');
var less=require('gulp-less');
var cleanCSS=require('gulp-clean-css');
gulp.task('less',function(){
return gulp.src('Less/*.less')
.pipe(less()) //READE.ME ,
.pipe(cleanCSS()) //
.pipe(gulp.dest('Publice/css/'));
});
gulp.task('lessWatch',function(){
gulp.watch('Less/*.less',['less']);// less less ( )
});
gulp.task('default',['lessWatch'])// less
gulp基本構成このように、複雑な参照をコンパイルできるlessを添付し、エラーを報告してエラー情報を出力できるgulp構成例を添付します.
var gulp = require('gulp');
var less = require('gulp-less');
var cleanCSS = require('gulp-clean-css'); // gulp-minify-css
var sourcemaps = require('gulp-sourcemaps'); //
var plumber = require('gulp-plumber'); //
var gutil = require('gulp-util'); //
function errHandler( e ){
gutil.log(e.toString());
} //
gulp.task('less', function() {
gulp.src('Less/*.less')
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(plumber( {errorHandler: errHandler}))
.pipe(less())
.pipe(cleanCSS()) //
.pipe(sourcemaps.write('mpas'))
.pipe(gulp.dest('Publice/css'));
});
gulp.task('watch',function(){
gulp.watch('Less/*.less', ['less']);
});
gulp.task('default', ['watch']);
ES 6はES 5を回転させ、混同された構成を圧縮する。
原理と論理はLESSとあまり変わらないまずインストール
$ npm install gulp-babel babel-preset-es2015 --save-dev
そして構成
var gulp = require('gulp');
var sourcemaps = require('gulp-sourcemaps'); //
var plumber = require('gulp-plumber'); //
var gutil = require('gulp-util'); //
var babel=require('gulp-babel'); //es6 es5
var uglify = require('gulp-uglify'); //js
function errHandler( e ){
gutil.log(e.toString());
} //
gulp.task('es5change',function(){
gulp.src('es6/*.js')
.pipe(sourcemaps.init({loadMaps:true}))
.pipe(plumber({errorHandler:errHandler}))
.pipe(babel({
presets: ['es2015']
}))
.pipe(uglify())
.pipe(sourcemaps.write('maps'))
.pipe(gulp.dest('Publice/js'));
});
gulp.task('watch',function(){
gulp.watch('es6/*.js', ['es5change']);
});
gulp.task('default', ['watch']);
最後にLessとES 6回転ES 5の完全な構成項目を添付します.
var gulp = require('gulp');
var less = require('gulp-less');
var cleanCSS = require('gulp-clean-css'); // gulp-minify-css
var sourcemaps = require('gulp-sourcemaps'); //
var plumber = require('gulp-plumber'); //
var gutil = require('gulp-util'); //
var babel=require('gulp-babel'); //es6 es5
var uglify = require('gulp-uglify'); //js
function errHandler( e ){
gutil.log(e.toString());
}
gulp.task('es5change',function(){
gulp.src('es6/*.js')
.pipe(sourcemaps.init({loadMaps:true}))
.pipe(plumber({errorHandler:errHandler}))
.pipe(babel({
presets: ['es2015']
}))
.pipe(uglify())
.pipe(sourcemaps.write('maps'))
.pipe(gulp.dest('Publice/js'));
});
gulp.task('less', function() {
"use strict";
gulp.src('Less/*.less')
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(plumber( {errorHandler: errHandler}))
.pipe(less())
.pipe(cleanCSS()) //
.pipe(sourcemaps.write('mpas'))
.pipe(gulp.dest('Publice/css'));
});
gulp.task('watch',function(){
gulp.watch('Less/*.less', ['less']);
gulp.watch('es6/*.js', ['es5change']);
});
gulp.task('default', ['watch']);