gulp モジュールのメソッド

Jun 15, 2018 pm 04:06 PM
gulp

1. src()
gulp モジュールの src メソッドは、データ ストリームの生成に使用されます。そのパラメータは処理されるファイルを表し、これらの指定されたファイルはデータ ストリームに変換されます。

js/app.js 指定确切的文件名
js/*.js 某个目录所有后缀名为js的文件
js/**/*.js 某个目录及其所有子目录中所有后缀名为js的文件
!js/app.js 除了js/app.js以外所有文件
*.+(js css)匹配项目根目录下,所有后缀名为js或css的文件
ログイン後にコピー

src メソッドのパラメーターは、複数のメンバーを指定する配列にすることもできます

gulp.src(['js/**/*.js','!js/**/*.min.js'])
ログイン後にコピー

2 dest()
dest メソッドは、パイプラインの出力をファイルに書き込み、これらの出力を出力し続けるため、 dest メソッドを複数回使用して、出力を複数のディレクトリに書き込みます。ディレクトリが存在しない場合は再構築されます。

gulp.src('./client/templates/*.jade')
      .pipe(jade())
      .pipe(gulp.dest('./build/template'))
      .pipe(minify())
      .pipe(gulp.dest('./build/minified_templates'));
ログイン後にコピー

dest メソッドは、構成オブジェクト

gulp.dest('build',{
 cwd:'./app',
 mode:'0644'})
ログイン後にコピー

に 2 つのフィールドがあることを示す 2 番目のパラメーターを受け入れることもできます。 cwd フィールドはパスを書き込むためのベース ディレクトリを指定し、デフォルトは現在のディレクトリです。mode フィールドはファイルを書き込む権限を指定し、デフォルトは 0777 です。
3.task()
task メソッドが使用されます。特定のタスクを定義します。最初のパラメータはタスク名で、2 番目のパラメータはタスク関数です。

gulp.task('greet',function(){
  console.log('Hello world');
});
ログイン後にコピー

task メソッドでは、順番に実行する一連のタスクを指定することもできます。

gulp.task('build',['css','js','imgs']);
ログイン後にコピー

3 つのタスク (css、js、imgs) で構成されるタスク ビルドを指定します。 task メソッドは、これら 3 つのタスクを同時に実行します。各タスクは非同期で呼び出されるため、js タスクの実行開始時刻を保証する方法がないことに注意してください。

各タスクを厳密に順序どおりに実行したい場合は、1 つのタスクを次のタスクの依存モジュールとして作成できます。

gulp.task('css',['greet'],function(){
  //deal with css here});
ログイン後にコピー

cssタスクはgreetタスクに依存しているため、cssはgreet完了後に必ず実行されます。

タスクメソッドのコールバック関数は関数をパラメータとして受け取ることもできます。これは非同期タスクの実行に非常に役立ちます。

//执行shell命令var exec=require('child_process').exec;
gulp.task('jekyll',function(cb){//build jekyllexec('jekyll build',function(err){
 if(err) return cb(err);//return error
 cb();//finished task})
})
ログイン後にコピー

タスクの名前がデフォルトの場合は、それがデフォルトのタスクであることを示します。コマンドラインで gulp コマンドを直接実行すると、タスクが実行されます。

gulp.task('default',function(){
  //default task})//或者gulp.task('default',['styles','jshint','watch']);
ログイン後にコピー

gulpを直接使用して実行すると、styles、jshint、watchの3つのタスクが実行されます。

4 watch()
watch メソッドは、監視する必要があるファイルを指定するために使用されます。これらのファイルが変更されると、指定されたタスクが実行されます。

gulp.task('watch',function(){
  gulp.watch('templates/*.tmpl.html',['build']);
});
ログイン後にコピー

このコードでは、テンプレート ディレクトリ内のテンプレート ファイルが変更されるとビルド タスクが実行されるように指定しています。

watch メソッドはコールバック関数を使用して指定されたタスクを置き換えることもできます

gulp.watch('templates/*.tmpl.html',function(event){
 console.log('Event type: '+event.type);
 console.log('Event path: '+event.path);
});
ログイン後にコピー

別の書き方では、watch メソッドによって監視されているファイルが変更 (ファイルの変更、追加、削除) されると、変更イベントがトリガーされます、および変更イベントは、コールバック関数を指定できます

var watcher=gulp.watch('templates/*.tmpl.html',['build']);
watcher.on('change',function (event){ console.log('Event type: '+event.type); console.log('Event path: '+event.path);
});
ログイン後にコピー

変更イベントに加えて、watch メソッドは次のイベントもトリガーできます
end コールバック関数の実行が完了するとトリガーされます
error エラーが発生したときにトリガーされます
ready ファイルの監視が開始されるとトリガーされます
nomatch なし 一致するウォッチ ファイルがあった場合にトリガーされます

ウォッチャー オブジェクトには他のメソッドも含まれます
watcher.end() はウォッチャー オブジェクトを停止し、タスクを呼び出されなくなりますまたは、コールバック関数
watcher.files() は、監視対象のファイルを追加するためにウォッチャー オブジェクト
watcher.add( glob) によって監視されているファイルを返します。また、コールバック関数
watcher.remove(filepath) を示す 2 番目のパラメーターを添付することもできます。 ) 監視対象ファイルをウォッチャー オブジェクトから削除します

5.gulp-livereload モジュール
gulp- livereload モジュールは、ブラウザを自動的に更新してソース コードの最新の変更を反映するために使用されます。モジュールに加えて、ソース コードの変更に対応するためにブラウザにプラグインをインストールすることも必要です。

var gulp=require('gulp'),
     less=require('gulp-less'),
     livereload=require('gulp-livereload'),
     watch=require('gulp-watch');
gulp.task('less',function(){
   gulp.src('less/*.less')
        .pipe(watch("less/*.less") )
        .pipe(less())
        .pipe(gulp.dest('css'))
        .pipe(livereload());
})
ログイン後にコピー

このコードは、less ファイルを監視するために使用されます。コンパイルが完了すると、ブラウザーが自動的に更新されます。

6 gulp-load-pluginsモジュール

一般に、gulpfile.jsのモジュールは1つずつロードする必要があります

var gulp=require('gulp'),
    jshint=require('gulp-jshint'),
    uglify=require('gulp-uglify'),
    concat=require('gulp-concat');
 gulp.task('js',function(){  return gulp.src('js/*.js')
           .pipe(jshint())
           .pipe(jshint.reporter('default'))
           .pipe(uglify())
           .pipe(concat('app.js'))
           .pipe(gulp.dest('build'));
})
ログイン後にコピー

gulpモジュールに加えて、コードは他の3つのモジュールもロードします

この方法gulp-load-plugins モジュールを使用して、package.json ファイル内のすべての gulp モジュールをロードします。

var gulp=require('gulp'),
 gulpLoadPlugins=require('gulp-load-plugins'),
 plugins=gulpLoadPlugins();
 gulp.task('js',function(){ return gulp.src('js/*.js')
  .pipe(plugins.jshint())
  .pipe(plugins.jshint.reporter('default'))
  .pipe(plugins.uglify())
  .pipe(plugins.concat('app.js'))
  .pipe(gulp.dest('build'));
})
ログイン後にコピー

gulp モジュールのメソッド

この記事では、gulp モジュールのメソッドについて説明します。関連コンテンツについては、PHP 中国語 Web サイトを参照してください。

関連する推奨事項:

js は HTML を画像として生成し、ローカルに保存します

js で関数を定義する 3 つの方法

JS で True ''

以上がgulp モジュールのメソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? 独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? Mar 18, 2025 pm 03:12 PM

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか? ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか? Mar 18, 2025 pm 03:14 PM

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? Apr 04, 2025 pm 02:42 PM

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか? ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか? Mar 18, 2025 pm 03:16 PM

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

誰がより多くのPythonまたはJavaScriptを支払われますか? 誰がより多くのPythonまたはJavaScriptを支払われますか? Apr 04, 2025 am 12:09 AM

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

ソースマップを使用して、マイナイドJavaScriptコードをデバッグするにはどうすればよいですか? ソースマップを使用して、マイナイドJavaScriptコードをデバッグするにはどうすればよいですか? Mar 18, 2025 pm 03:17 PM

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Apr 04, 2025 pm 05:12 PM

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...

JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? Apr 04, 2025 pm 05:09 PM

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

See all articles