質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

Q&A

1回答

3615閲覧

gulpのプラグインを利用して、メディアクエリの記述をひとまとめにしたいです。

sunacodesu

総合スコア6

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

0グッド

0クリップ

投稿2020/02/06 05:43

現在、Gulpのプラグイン導入を試みているのですが、
うまく導入ができず非常に困っています。

具体的に導入したい内容としましては、

★sassで記述したメディアクエリ をまとめて記述する方法

を導入したいです。

pleeeaseやgulp-group-css-media-queriesをインストールするところまではできるのですが、
実際に、scssファイルにメディアクエリを記述しても、
cssファイルに整頓されたものが反映されず、困っております。

ファイルの構造は
sass
┠style.css
┠style.min.css
┗style.scss
index.html
gulpfile.js
package.json
yarn.lock

です。

★VScodeのeasysassを利用しているため、scss→cssのコンパイルは自動で行われます。

★参考にした記事はこちらです。
https://sakic.jp/blog/web/gulp-pleeease

★gulpfileとpackage.jsonのファイルをスクリーンショットで添付しています。

もしおわかりの点&お気づきの点がありましたら、ご協力願えませんでしょうか。
何卒、よろしくお願いいたします。

イメージ説明

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

css-mqpackerは使ったことなかったのでちょっと試してみました。
・gulp_task()メソッドは非推奨(そのうちなくなる?)なので使っていません。
・コピー元、コピー先のフォルダー構成は私のテスト環境です。
・コピーの前に、del()メソッドでコピー先を一旦削除(ゴミ掃除)してます。(clean_cssタスク)
・コンパイルタスク(compile_sass)と削除タスク(clean_css)をseries()メソッドで直列処理してます。

const {src, dest, series} = require('gulp'); const del = require('del'); const sass = require('gulp-sass'); const postcss = require('gulp-postcss'); const mqpacker = require('css-mqpacker'); const clean_css = async function () { await del('./stylesheets/**/*', { cwd: './public/development' }); }; const compile_sass = function () { return src('./stylesheets/**/*.scss', { cwd: './public/source' }) .pipe(sass({outputStyle: 'expanded'})) .pipe(postcss([mqpacker()])) .pipe(dest('./stylesheets', { cwd: './public/development' })); }; module.exports = series(clean_css, compile_sass);

テスト用のSCSSです。 (./public/source/stylesheets/test.scss)

div.box1{ font-size: 38px; @media only screen and (max-width: 1216px){ font-size: 35px; } @media only screen and (max-width: 980px){ font-size: 28px; } @media only screen and (max-width: 768px){ font-size: 26px; } } div.box2{ margin-bottom: 100px; @media only screen and (max-width: 1216px){ margin-bottom: 80px; } @media only screen and (max-width: 980px){ margin-bottom: 50px; } @media only screen and (max-width: 768px){ margin-bottom: 30px; } }

コピー先にこんな実行結果のCSSができました。 (./public/development/stylesheets/test.css)

div.box1 { font-size: 38px; } div.box2 { margin-bottom: 100px; } @media only screen and (max-width: 1216px) { div.box1 { font-size: 35px; } div.box2 { margin-bottom: 80px; } } @media only screen and (max-width: 980px) { div.box1 { font-size: 28px; } div.box2 { margin-bottom: 50px; } } @media only screen and (max-width: 768px) { div.box1 { font-size: 26px; } div.box2 { margin-bottom: 30px; } }

圧縮指定するとこんな感じになりました。(outputStyle: 'compressed')

div.box1{font-size:38px}div.box2{margin-bottom:100px}@media only screen and (max-width: 1216px){div.box1{font-size:35px}div.box2{margin-bottom:80px}}@media only screen and (max-width: 980px){div.box1{font-size:28px}div.box2{margin-bottom:50px}}@media only screen and (max-width: 768px){div.box1{font-size:26px}div.box2{margin-bottom:30px}}

よろしかったら参考にしてください。

投稿2020/02/06 15:53

technocore

総合スコア7337

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問