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

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

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

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

gulp

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

Q&A

1回答

5772閲覧

gulpを使用してsassのコンパイルが何度やっても出来ない

codemanvs

総合スコア45

Sass

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

gulp

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

0グッド

0クリップ

投稿2020/06/05 04:09

gulpでSassをコンパイルしたいがつまずいている。。

Sassのコンパイルが全く出来ず、何をすれば良いのか見失っています...
ディレクトリ構造が以下。

●●●●●●●(folder name) -top_page.html -sass(folder) -top_page.scss -stylesheet(folder) -gulpfile.js -package.json -package-lock.json -node_modules

gulpfile.js

var gulp = require('gulp'); var sass = require('gulp-sass'); // SassとCssの保存先を指定 gulp.task('sass', function(){ gulp.src('./sass/**/*.scss') .pipe(sass({outputStyle: 'expanded'})) .pipe(gulp.dest('./css/')); }); //自動監視のタスクを作成(sass-watchと名付ける) gulp.task('sass-watch', ['sass'], function(){ var watcher = gulp.watch('./sass/**/*.scss', ['sass']); watcher.on('change', function(event) { }); }); // タスク"task-watch"がgulpと入力しただけでdefaultで実行されるようになる gulp.task('default', ['sass-watch']);

pacage.json

{ "name": "******(folder name)", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "gulp": "gulp" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "autoprefixer": "^9.8.0", "browser-sync": "^2.26.7", "css-declaration-sorter": "^5.1.2", "gulp": "^4.0.2", "gulp-ejs": "^5.1.0", "gulp-imagemin": "^7.1.0", "gulp-notify": "^3.2.0", "gulp-plumber": "^1.2.1", "gulp-postcss": "^8.0.0", "gulp-rename": "^2.0.0", "gulp-sass": "^4.1.0", "gulp-sass-glob": "^1.1.0", "imagemin-mozjpeg": "^9.0.0", "imagemin-pngquant": "^9.0.0" } }

上記状態で、ターミナルにnpm run gulpと打つと..以下がでます。

npm ERR! missing script: gulp npm ERR! A complete log of this run can be found in: npm ERR! /Users/****/.npm/_logs/2020-06-05T03_33_50_342Z-debug.log

また、ターミナルにgulpと打つと、以下がでます。

[12:59:47] Using gulpfile ~/gulpfile.js [12:59:47] Task never defined: default [12:59:47] To list available tasks, try running: gulp --tasks

色々な記事を読み漁りパスを変えたりして、色々と書き加えたりして変えましたが、まったくコンパイルできません。
詳しい方、何がダメなのか助言頂けるとありがたく思います。

よろしくお願いします...

参考記事
https://flex-box.net/gulp/#co-index-1
https://qiita.com/M_amourr/items/09c8bb4e2b2981cafe7a
https://teratail.com/questions/134500
https://qiita.com/M_amourr/items/09c8bb4e2b2981cafe7a

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

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

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

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

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

miyabi_takatsuk

2020/06/05 04:14

gulpのバージョンはなんぼでしょうか?? 3系と4系では、書き方若干変わりますので。
miyabi_takatsuk

2020/06/05 04:18

また、コマンドを、 gulp sass-watch として実行してみてください。
codemanvs

2020/06/05 04:18

CLI version: 2.2.0 Local version: 4.0.2 こちらです!!
codemanvs

2020/06/05 04:20

gulp sass-watchをvs codeのターミナルで行うとこのようなのがでました! at execute (/usr/local/lib/node_modules/gulp/node_modules/gulp-cli/lib/versioned/^4.0.0/index.js:36:18) { generatedMessage: false, code: 'ERR_ASSERTION', actual: false, expected: true, operator: '=='
miyabi_takatsuk

2020/06/05 04:25

CLI version: 2.2.0 Local version: 4.0.2 を出せたディレクトリでのコマンド実行で、それがターミナル上で出たということですか??
codemanvs

2020/06/05 04:28 編集

はい、そうです! vs codeのターミナルではなく、普通のターミナル上でgulp sass-watchを打ち込んだ場合は以下がでました。 [13:27:11] Using gulpfile ~/gulpfile.js [13:27:11] Task never defined: sass-watch [13:27:11] To list available tasks, try running: gulp --tasks
miyabi_takatsuk

2020/06/05 04:31

普通のターミナルの方で出たのが、動作している状態かと思われますので、 その状態で、sassファイルを修正してみてください
codemanvs

2020/06/05 04:40

すみません、これ以上どこを修正すれば良いのかがわからない状態です。。。 が、いったん色々ググってもう一度やってみます! 他にアドバイスがあればその時はどうかよろしくおねがいします。
miyabi_takatsuk

2020/06/05 04:41

あ、いや、動いてないかも。 おそらく、watch自体を、gulpfile.jsにて定義する必要があります。 gulp 4 watchと調べてみてください。 4系だと、定義の仕方が少し違ったはずです
miyabi_takatsuk

2020/06/05 04:47 編集

あと、さきほど私が修正してみて、と言ったのは、 sassファイル自体です。 watchは、基本的に、ファイルの更新などを監視するタスクとなりますので、 対象のファイルを修正したのに反応して、ファイルにgulpで定義した処理を行い、定義したパスに吐き出すって仕組みになります。
codemanvs

2020/06/05 04:49

なるほど... gulp 4 watchを調べてもう少し、いじってみます!
guest

回答1

0

本質問の書き方は、gulp 3系の書き方なので、
gulp 4系では、動きません。
下記のようにgulpfile.jsを書き換えてみてください。
(また、gulp-changedパッケージをインストールしてください)

javascript

1// 各処理メソッドを、gulpの中で読み込むのではなく、直接取り出す 2const {src, watch, dest, series} = require('gulp'); 3const changed = require('gulp-changed'); 4var sass = require('gulp-sass'); 5 6// SassとCssの保存先を指定 7// gulpからの実行ではなく、処理自体を、変数に格納する 8const sassComp = () => { 9 return src('./sass/**/*.scss') 10 // 下記一行を追加 11 .pipe(changed('./sass/**/*.scss')) 12 .pipe(sass({outputStyle: 'expanded'})) 13 .pipe(dest('./css/')); 14}; 15 16// 自動監視のタスクを作成(sass-watchと名付ける) + コマンドから実行できるようにする 17exports['sass-watch'] = () => { 18 watch(['./sass/**/*.scss'], series(sassComp)); 19 // watcher.on('change', function(event){}); 20}; 21 22// gulp4以降では、下記のような処理は不要 23// タスク"task-watch"がgulpと入力しただけでdefaultで実行されるようになる 24// gulp.task('default', ['sass-watch']);

これで、コマンドにて、gulp sass-watchと実行すれば、
sassファイルの監視がスタートするはずです。
動かなかったりしたら、またコメントください。

投稿2020/06/05 05:08

miyabi_takatsuk

総合スコア9528

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

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

codemanvs

2020/06/05 05:38 編集

ありがとうございます! gulp-changedインストールして試してみましたけど、できないです。。 以下のエラーがやはりでますね [14:36:24] Using gulpfile ~/gulpfile.js [14:36:24] Task never defined: sass-watch [14:36:24] To list available tasks, try running: gulp --tasks
miyabi_takatsuk

2020/06/05 05:40

ふむ・・・・、 私の回答通りで書いて、動作しなかったってことですよね? gulp-changedは、ローカルインストールでしょうか? (多分ローカルインストールの方がよさそう) エラーとか出てきてたら、エラー文教えていただけませんか?
miyabi_takatsuk

2020/06/05 07:00 編集

const {src, watch, dest, series} = require('gulp'); は入れましたか? とにかく、一度回答と、ご自身のコードを見比べて、回答のコードと同じになるようにしていただけないでしょうか?
codemanvs

2020/06/06 03:25

お返事遅れすみません。。。あの後、miyabiさんが教えてくれたコードなどを何度も見直したり、少し変えたりしても全くできなかったので、いったんgulpを使わずにコンパイルを行いました。 後日、再度gulpでのやり方を試してみます。。 色々、教えていただきありがとうございました...... :)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問