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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Sass

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

gulp

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

Q&A

解決済

3回答

1710閲覧

gulpを使ったSassのコンパイル先の指定方法について

hyhpsk

総合スコア5

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Sass

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

gulp

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

0グッド

0クリップ

投稿2020/01/24 02:22

編集2020/01/24 02:34

前提・実現したいこと

gulpを使って、sassのコンパイルを自動で行い、生成後のファイルがcssフォルダ内に生成されるようにしたいです。


【プロジェクトファイル】
index.html
-scss【1】
-style.scss
-css【2】
-style.css
-js
gulpfile.js
package.json

【1】のフォルダ内で作成したsassファイルをコンパイルすると【2】のCSSフォルダ内に生成される

発生している問題・エラーメッセージ

【1】のフォルダ内にcssファイルが生成されてしまいます。


【プロジェクトファイル】
index.html
-scss【1】
-style.scss
-style.css ✕
-css【2】
-js
gulpfile.js
package.json

ファイルのコンパイル、watchでの監視は正常に機能しますが、ファイルの生成先だけがうまく指定できません。

該当のソースコード

gulpfile.jsには下記のように記述をしています。


var gulp = require('gulp');
var sass = require('gulp-sass');

gulp.task('default', function() {
return gulp.src('./sass/**/*.scss')
.pipe(sass({outputStyle: 'expanded'}))
.pipe(gulp.dest('./css'))
});

gulp.task('default', function() {
gulp.watch('./sass/**/*.scss', gulp.task('default'));
});


.pipe(gulp.dest('./css'))

この記述部分によって、cssフォルダ内に生成されると認識していますが、どうしてもscssファイルと同一のフォルダへファイルが生成されてしまいます。

補足情報(FW/ツールのバージョンなど)

gulp
CLI version: 2.2.0
Local version: 4.0.2

node.js
v12.14.1

os
windows10

jsに対する知識はほぼありません。

回答よろしくお願いいたします。

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

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

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

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

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

guest

回答3

0

こちらのページ内でのやり取りを実行すれば問題は解決しました。

ただし、gulpを使用する前に「VScode」拡張機能「EasySass」を使用していた方は注意が必要です。

私の場合、まずはじめにEasySassによるコンパイルを行っていました。その後、将来的な拡張性を考え、gulpを実行したところ、当ページの問題が発生しました。

結論からいうとgulpを導入する際にEasySassの機能を停止し、念のためアンインストールまで行いましたが、EasySassの影響を受けていました。

EasySassの機能を停止した後は、VScodeを再起動、それでも影響を受ける場合はPC内にある残っているEasySassの関連ファイルをすべて削除したところ、すべての問題が解決しました。

参考として書き残しておきます。

投稿2020/01/25 01:57

hyhpsk

総合スコア5

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

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

0

ベストアンサー

似たような処理を書いてみて動いたので参考にしてください

const { src, dest } = require('gulp'); const sass = require('gulp-sass'); const task_sass = () => { return src('./src/**/*.scss') .pipe(sass({outputStyle: 'expanded'})) .pipe(dest('./dest')); }; exports.runsass = task_sass;

実行方法
$ npm run gulp runsass

コンパイル結果

.src/ sample.scss base/ base.scss .dest/ sample.css base/ base.css

.src配下のscssファイルが.dest配下にコンパイルされました。

投稿2020/01/24 04:02

technocore

総合スコア7200

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

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

hyhpsk

2020/01/24 04:24

PC触れる状況になったらすぐに試してみます! ちなみにこの場合、srcフォルダとdestというフォルダを作成しておけばよいのでしょうか? 本当に知識がなく申し訳ありません。。
technocore

2020/01/24 04:36 編集

>ちなみにこの場合、srcフォルダとdestというフォルダを作成しておけばよいのでしょうか? あなたがフォルダを用意しているので、私もそれに合わせてスクリプトを書きました。フォルダ名はあなたの環境に合わせてください。
hyhpsk

2020/01/25 01:48

昨日、ご丁寧な対応ありがとうございました。 教えて頂いたコードを試したところ無事問題を解決できました! 本当にありがとうございました!
guest

0

gulp.src('./sass/**/*.scss')

ソースはscssフォルダ
出力先はcssフォルダなのに
「sass」は何を指しているのですか?

単純に
src('./scss/*.scss')
pipe(dest('./css')
ではだめですか?

投稿2020/01/24 02:51

technocore

総合スコア7200

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

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

hyhpsk

2020/01/24 03:54 編集

ご質問ありがとうございます! src部分(scss)のディレクトリ構成ですが、これは後々修正がしやすいようにscssのファイルを細かくわけようと考えたためこのような構成を考えておりました。 【scss】  -base --base.scss --reset.scss -setting --_color.scss --_size.scss --_typofraphy.scss -module -page 参考:http://tsudoi.org/guide/detail/8.html gulp.src('./scss/**/*.scss') の記述であれば、上記の構成に対しても対応ができると考えこのような書き方をしております。 説明不足ですいません! (※)ご指摘頂きコメント部分修正しました。
technocore

2020/01/24 03:42

gulpfile.jsと同じ場所にscssフォルダとcssフォルダはあるようですが、sassフォルダはありません。 「sass」は何を指しているのですか?
hyhpsk

2020/01/24 03:42

上記で頂いた形で修正をしてみましたが、同様にscssフォルダの中にファイルが生成されてしまいます。 var gulp = require('gulp'); var sass = require('gulp-sass'); gulp.task('default', function() { return gulp.src('./scss/*.scss') .pipe(sass({outputStyle: 'expanded'})) .pipe(gulp.dest('./css')) }); gulp.task('default', function() { gulp.watch('./scss/*.scss', gulp.task('default')); });
hyhpsk

2020/01/24 03:44

すいません!入れ違いになってしまいました! ファイル名間違えていたかもです!!!滝汗 修正してみます!!
hyhpsk

2020/01/24 03:47

すいません、これはメッセージの記述ミスですね。。。 【scss】  -base --base.scss --reset.scss -setting --_color.scss --_size.scss --_typofraphy.scss -module -page 理想はこのような感じで作りたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問