GulpがtoStringエラーで動かない時やること。gulpのgulp-sass-globあり。【flocssで構成】

最終結論(めんどくさい方向け)

※最初からのnpm導入やgulp導入、flocssの説明は省きます。googleで検索を推奨します。

 

 

—————————————————

追記:

ファイルの構造を見直してください!

僕の場合は、「**」というフォルダが生成されていまして、それに引っかかっていました!

不要なファイルがないか隅々までチェックしてください。

 

それでも動かない時は・・・↓

僕の設定をコピペしてください。(この時のコードはあまり綺麗ではないです・・)

【僕の最新のコードはこちらをクリック】

—————————————————

 

もし他のエラーが出ていて、面倒臭いって方は、

これをgulpfile.jsにコピペして下さい↓

こちらの記事を参考にカスタマイズして書きました。 

 

・ディレクトリ構造はこのようにして下さい

(flocss(フロックス)を元に構成しています。)

・style.scssの中身もこのようにして下さい

・index.htmlは一つで大丈夫です。

(ちなみにエディタはVScodeです)

 

↓↓↓↓↓↓↓↓↓↓↓↓

※「.history」はVScodeの履歴生成プラグインが自動生成したものです。関係ないので気にしないでください。

※「GULPTEST」 というのは一番上のフォルダ名のことです。大文字なのはvscodeの仕様なので気にしないでください。

実際のフォルダ名は「gulptest」です。

 

 

style.scssを添付しておきます、使って下さい↓

_commonStyles.scssは以下です↓(globの確認のために入れています)(foundationフォルダに入れます)

「_」をつけ忘れないでください。「commonStyles.scss」ではなく、「_commonStyles.scss」です。

 

できましたか?では、ターミナルで、

「npm install -D」

「npx gulp」

と打って下さい。

その後、変更してみて下さい。

 

以上です。僕はこれで無事解決されました。

 

 

原因と解決策

今回の原因

ディレクトリ構造とgulpfile.jsが互いに何かしらの衝突を引き起す
意味不明な部分からエラーを取ってきた
その結果「toStringがありません」になったと思われます。


解決策

直近で成功している方のディレクトリ構造とgulpfile.jsを試す

やる事↓
・ディレクトリ構造を最初から書き直し
・gulpfile.jsを最初から書き直し

 

実際にこの構造で成功した記事(出来るだけ最新の記事を選びました)

 

・ディレクトリ構造・gulpfile.jsはこちらの記事を完全に再現してください。

・gulp-sass-globプラグインを使いたい場合は、こちらの記事から以下の部分を拝借してください↓

 

関数の定義(一番上に書きます)↓

const glob = require(“gulp-sass-glob”);
 
 
globを動かす(sassのコンパイルの前に書いてください)↓
 
.pipe(glob())

 

 

あとがき

 

teratailでこのような質問をしましたが、解決しませんでした。
その後、上記2記事にたどり着き、解決しました。

 

今回特に改めるべき事

・gulpfile.jsをいじるときは、成功するたびにバックアップを別名保存する。

・ディレクトリ構造のパスは変えなくていいように、gulpのパスの指定を固定する。(一度決めたら変えない)

・toStringエラーが出たら上記のことを実行する

 

ありがとうございましたm( _  _)m

 

 

 

追記!!

原因が判明しました。

・gulpfile.jsでscssを吐き出す場所を間違っている→間違ったファイルが生成される→間違ったファイルがインポートされる→typeエラー(toString is null)

 

コードがどのように流れているのかを可視化できるプラグイン、「gulp-debug」プラグインを導入後に解決!!!!

エラーの流れをちゃんと可視化しないといけないですね・・(汗笑)

 

流れは以下です↓(gulptest-filalという名前のフォルダで実験しています)

macでのスクショはこんな感じです↓

 

 

なんだ・・。ずっと2日間エラー探していたのはなんだったのでしょうか。。

御愁傷様でした、自分。。

 

解決したので良かったです!もうエラー出しても平気な自信あります(笑)

こちらの記事を見てgulp-debugプラグインを導入しました!

先ほどの僕のgulpfile.jsに含まれているので安心してくださいね。

 

それでは〜

最後までお読み頂きありがとうございました!