ホームページ > ウェブフロントエンド > jsチュートリアル > SASS用のシンプルなGulp' Yワークフロー

SASS用のシンプルなGulp' Yワークフロー

William Shakespeare
リリース: 2025-02-19 12:40:10
オリジナル
128 人が閲覧しました

SASS用のシンプルなGulp' Yワークフロー

キーテイクアウト

  • ガルプワークフローは、大規模なRailsプロジェクトでのSASS編集時間を改善し、資産パイプラインから離れ、Libsassの速度を受け入れることができます。
  • gulpワークフローには、libsassとのSASSコンピレーション、デバッグを簡単にするためのSourcemapsの生成、CSSの自動化合物のプレフィックス、SassdocでのSASSドキュメントの生成が含まれます。
  • ワークフローは、スタイルシートの変更を監視してそれらを再コンパイルするウォッチタスクを追加し、ファイルを保存するたびにSASSタスクを手動で実行する必要性を排除することにより、さらに最適化できます。
  • 「製品」タスクは、圧縮モードでSASSをコンパイルし、CSSをオートプレフィキサーで接頭辞し、SASSDOCドキュメントを再生し、SassDOCのドキュメントを回避するために、生産に展開するために作成できます。
  • 私は最近、非常に大きなRailsプロジェクトのSASS側の最適化を担当しており、最も重要なことの1つは、コンピレーション時間を改善することでした。 SASSアーキテクチャが配置されており、Ruby Sass(この場合はRails Asset Pipelineを介して)が膨大な数のファイルを扱うと遅くなる傾向があるため、スタイルシートをコンパイルするのに最大40秒かかる可能性があります。迅速な開発プロセスについて話します。 :)
  • 私の考えは、資産パイプラインから離れて、libsassの速度を受け入れることでした。物事を簡単にするために、私は簡単なガルプワークフローを使用することにしました。 Gulpを使用するのは初めてでしたが、それは非常に楽しい経験だったと言わざるを得ません(私が懸念している限り、うなり声の場合はそうではありませんでした)。 この短い記事では、SASSを使用するためにGulp’yワークフローをセットアップする方法について簡単なツアーをしましょう。これが私たちが含めるものです:

当然のことながら、libsass

とのsass編集

デバッグを容易にするためのSourceMapsの生成

autoprefixerを使用してCSSをプレフィックスします

Sassdoc
    を使用してSASSドキュメントを生成します
  • sass
  • コンパイル Atozを見る:Sass 手紙でサスの手紙を学びます
  • このコースをご覧ください このコースをご覧ください
  • 最初に行うことは、依存関係をインストールし、gulpfile.jsを作成することです。ガルプ(たわごとはありません、シャーロック)だけでなく、スタイルシートをコンパイルするためにガルプサスも必要です:
  • この行は、NPMに、開発依存関係としてGulpとGulp-Sassパッケージの両方をインストールするように指示します。 Package.jsonのdevdependenciesオブジェクトでそれらを見つけることができます。およびgulpfile.js:

うわー、それは短かった。今必要なのは、StyleSheetsフォルダーでSASS(実際にgulp-sass)を実行する

タスクSASS用のシンプルなGulp' Yワークフローです。
$ <span>npm install gulp gulp-sass --save-dev</span>
ログイン後にコピー
ログイン後にコピー

それだけです!非常に最小限のGulpタスクのおかげで、Libsassを使用してStyleSheetsをコンパイルできるようになりました。それはどうですか? Gulp-Sassにオプションを渡すには、拡張モードでStyleSheetsをコンパイルし、コンソールにエラーを印刷することができます。

<span>var gulp = require('gulp');
</span><span>var sass = require('gulp-sass');</span>
ログイン後にコピー
ログイン後にコピー
sourcemapsの追加

これまでのところ

とても良いです。さて、SourceMapsを生成するのはどうですか? Sourcemapsが何であるかわからない場合は、基本的に、ライブコードのデバッグを容易にするために、圧縮生産ソースを開発ソースとマッピングする方法です。それらはまったくCSSに制限されていません、SourceMapsはJavaScriptでも使用できます。

SetePointでSourceMapsについての素敵な記事があります。 Sourcemapsの理解が少し不足していると感じたら、先に読んでください。

さて、SourceMapsの生成をタスクに追加するには、Gulp-Sourcemaps:

をインストールする必要があります。

そして、タスクを最適化しましょう:

<span>var input = './stylesheets/**/*.scss';
</span><span>var output = './public/css';
</span>
gulp<span>.task('sass', function () {
</span>  <span>return gulp
</span>    <span>// Find all `.scss` files from the `stylesheets/` folder
</span>    <span>.src(input)
</span>    <span>// Run Sass on those files
</span>    <span>.pipe(sass())
</span>    <span>// Write the resulting CSS in the output folder
</span>    <span>.pipe(gulp.dest(output));
</span><span>});</span>
ログイン後にコピー
ログイン後にコピー

デフォルトでは、Gulp-Sourcemapsは、コンパイルされたCSSファイルにSourcemapsをインラインで書き込みます。プロジェクトのセットアップに応じて、それらを別々のファイルに記述することをお勧めします。その場合、sourcemaps.write()functionのgulp.dest()宛先に関連するパスを指定できます。

<span>var sassOptions = {
</span>  <span>errLogToConsole: true,
</span>  <span>outputStyle: 'expanded'
</span><span>};
</span>
gulp<span>.task('sass', function () {
</span>  <span>return gulp
</span>    <span>.src(input)
</span>    <span>.pipe(sass(sassOptions).on('error', sass.logError))
</span>    <span>.pipe(gulp.dest(output));
</span><span>});</span>
ログイン後にコピー
ログイン後にコピー
パーティーにオートプレフィキサーを持ち込む

Autoprefixerを使用することが手でベンダーを書くよりも良い理由(または基本的に同じもの)を使用するよりも詳細に説明することはありませんが、ほぼAutoprefixerは、実際に既にコンパイルされた更新を更新することを意味します。最新のデータベースと特定の構成に基づいて、関連するプレフィックスを追加するスタイルシート。言い換えれば、あなたはあなたがサポートするブラウザをAutoprefixerに伝え、それはスタイルシートに関連するプレフィックスのみを追加します。努力はゼロ、完璧なサポート(このキャッチフレーズの特許をとることを思い出させてください)。
$ <span>npm install gulp-sourcemaps --save-dev</span>
ログイン後にコピー
ログイン後にコピー
Gulp’yワークフローにAutoprefixerを含めるには、SASSがそのことを行った後に

パイプ

にのみ必要です。次に、Autoprefixerはスタイルシートを更新してプレフィックスを追加します

最初に、インストールしましょう(今までに要点を取得します):

次に、タスクに追加します:

今、

です。
<span>var gulp = require('gulp');
</span><span>var sass = require('gulp-sass');
</span><span>var sourcemaps = require('gulp-sourcemaps');
</span>
<span>// ... variables
</span>
gulp<span>.task('sass', function () {
</span>  <span>return gulp
</span>    <span>.src(input)
</span>    <span>.pipe(sourcemaps.init())
</span>    <span>.pipe(sass(sassOptions).on('error', sass.logError))
</span>    <span>.pipe(sourcemaps.write())
</span>    <span>.pipe(gulp.dest(output));
</span><span>});</span>
ログイン後にコピー
ログイン後にコピー
1%以上の市場シェアを持つ

ブラウザ、

すべてのブラウザの最後の2つのバージョン、
gulp<span>.task('sass', function () {
</span>  <span>return gulp
</span>    <span>.src(input)
</span>    <span>.pipe(sourcemaps.init())
</span>    <span>.pipe(sass(sassOptions).on('error', sass.logError))
</span>    <span>.pipe(sourcemaps.write('./stylesheets/maps'))
</span>    <span>.pipe(gulp.dest(output));
</span><span>});</span>
ログイン後にコピー
ログイン後にコピー

firefox esr、

    オペラ12.1
  • soのような独自の構成を使用できます
  • ドキュメントをリリース!
  • 最後になりましたが、ワークフロー、SASSDOCのSASSドキュメント生成に追加するツール。 Sassdocは、JSDOCがJavaScript:ドキュメントツールをSASSすることです。変数、ミキシン、機能、プレースホルダーを文書化するコメントブロックを探しているスタイルシートを解析します。 Sassdocのクールなことは、APIがGulp互換性があるため、Gulpに直接配管できることです。したがって、実際にはGulp-Sassdocプラグインはありません
    $ <span>npm install gulp gulp-sass --save-dev</span>
    ログイン後にコピー
    ログイン後にコピー
    <span>var gulp = require('gulp');
    </span><span>var sass = require('gulp-sass');</span>
    ログイン後にコピー
    ログイン後にコピー
    プロジェクトのサイズと文書化されたアイテムの数に応じて、Sassdocは実行するのに最大数秒かかる可能性があることに注意してください(私が気づいた限りではめったに3を上回ることはありません)。これのために別々のタスク。

    <span>var input = './stylesheets/**/*.scss';
    </span><span>var output = './public/css';
    </span>
    gulp<span>.task('sass', function () {
    </span>  <span>return gulp
    </span>    <span>// Find all `.scss` files from the `stylesheets/` folder
    </span>    <span>.src(input)
    </span>    <span>// Run Sass on those files
    </span>    <span>.pipe(sass())
    </span>    <span>// Write the resulting CSS in the output folder
    </span>    <span>.pipe(gulp.dest(output));
    </span><span>});</span>
    ログイン後にコピー
    ログイン後にコピー
    繰り返しますが、デフォルトの構成を使用しますが、必要に応じて独自の構成を使用できます。

    私はあなたを見ています
    <span>var sassOptions = {
    </span>  <span>errLogToConsole: true,
    </span>  <span>outputStyle: 'expanded'
    </span><span>};
    </span>
    gulp<span>.task('sass', function () {
    </span>  <span>return gulp
    </span>    <span>.src(input)
    </span>    <span>.pipe(sass(sassOptions).on('error', sass.logError))
    </span>    <span>.pipe(gulp.dest(output));
    </span><span>});</span>
    ログイン後にコピー
    ログイン後にコピー

    去る前にできることはまだあります:時計タスクを作成します。このタスクのポイントは、スタイルシートの変更を監視して再び再コンパイルすることです。プロジェクトのSASS側で作業する場合は非常に便利です。ファイルを保存するたびにSASSタスクを手作業で実行する必要はありません。

    最後のタッチを追加
    $ <span>npm install gulp-sourcemaps --save-dev</span>
    ログイン後にコピー
    ログイン後にコピー

    最後の、しかし重要なことを考えるべきこと:デフォルトのタスクでSASSを実行します。

    タスク(..)関数の2番目の引数として渡された配列は、依存関係タスクのリストです。基本的に、3番目の引数として指定されたタスクを実行する前に、これらのタスクを実行するようにGulpに指示します(もしあれば)。 また、生産に展開する直前に実行できる製品タスクを作成する可能性があります(おそらくGitフック付き)。このタスクは次のとおりです

    圧縮モードでSASSをコンパイルします
    <span>var gulp = require('gulp');
    </span><span>var sass = require('gulp-sass');
    </span><span>var sourcemaps = require('gulp-sourcemaps');
    </span>
    <span>// ... variables
    </span>
    gulp<span>.task('sass', function () {
    </span>  <span>return gulp
    </span>    <span>.src(input)
    </span>    <span>.pipe(sourcemaps.init())
    </span>    <span>.pipe(sass(sassOptions).on('error', sass.logError))
    </span>    <span>.pipe(sourcemaps.write())
    </span>    <span>.pipe(gulp.dest(output));
    </span><span>});</span>
    ログイン後にコピー
    ログイン後にコピー

    autoprefixerを使用したcssプレフィックス

    Sassdocドキュメントを再生します

  • 最終的な考え
  • それは皆さんです!数分と数行のJavaScriptで、強力な小さなガルプワークフローを作成することができました。ここで完全なファイルを見つけることができます。何に追加しますか?
  • ガルプとSASSワークフローに関するよくある質問(FAQ)
プロジェクトにgulpとsassをインストールするにはどうすればよいですか?
gulp<span>.task('sass', function () {
</span>  <span>return gulp
</span>    <span>.src(input)
</span>    <span>.pipe(sourcemaps.init())
</span>    <span>.pipe(sass(sassOptions).on('error', sass.logError))
</span>    <span>.pipe(sourcemaps.write('./stylesheets/maps'))
</span>    <span>.pipe(gulp.dest(output));
</span><span>});</span>
ログイン後にコピー
ログイン後にコピー

プロジェクトにgulpとsassをインストールするには、コンピューターにnode.jsとnpmをインストールする必要があります。これらを手に入れると、ターミナルでコマンドNPMインストール-Global Gulp-Cliを実行して、Gulpをグローバルにインストールできます。その後、プロジェクトディレクトリに移動し、NPM initを実行してpackage.jsonファイルを作成します。次に、NPMインストールを実行して、プロジェクトにGulpとGulp-Sassをインストールします - save-dev gulp gulp-sass。

​​Gulpを使用してSASSファイルをコンパイルするには、Gulpタスクを作成する必要があります。 gulpfile.jsでは、SASSファイルをCSSにコンパイルする「SASS」という名前のタスクを作成できます。これを行う方法の簡単な例は次のとおりです。 ( 'sass'、function(){

return gulp.src( './ sass/**/*。scss ')
.pipe(sass()。on(' error '、sass.logerror))
.pipe(gulp.dest(' ./ css '));
}))) ; });

sassディレクトリに.scssファイルを保存するたびに、「SASS」タスクは自動的にSASSファイルをCSSにコンパイルします。 SASSファイルのエラーを処理するにはどうすればよいですか?

SASSファイルをコンパイルすると、構文エラーが発生する可能性があります。これらのエラーは、Gulp-Sassが提供するONメソッドを使用して処理できます。 「SASS」タスクを変更してエラーを記録する方法は次のとおりです。 scss ')
.pipe(sass()。on(' error '、sass.logerror))
.pipe(gulp.dest( './ css'));
});

今では、SASSファイルに構文エラーがあるときはいつでも、gulp-sassはエラーを記録し、タスク。

gulpを使用してCSSファイルをマイニングするにはどうすればよいですか?
​​
Gulp-Clean-CSSと呼ばれるプラグイン。まず、NPMインストールを実行してプロジェクトにインストールします - ave-dev gulp-clean-css。次に、CSSファイルをマイニングするタスクを作成できます。 ()=> {
return gulp.src( 'styles/*。css')
.pipe(cleancss({compatibility: 'ie8'})))
.pipe(gulp.dest( 'dist'));
});

このタスクは、スタイルディレクトリのすべての.cssファイルを取得し、それらを使用して削除しますgulp-clean-css、および結果として得られた模倣CSSファイルをdistディレクトリに出力します。

以上がSASS用のシンプルなGulp&#x27; Yワークフローの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート