gulp-scss-lint実行時に以下のようなエラーが発生する場合があります。これはgulp-scss-lintがインストールされているにもかかわらず、scss-lintがインストールされていないため発生するエラーです。
Error in plugin "gulp-scss-lint"
'scss-lint' is not recognized as an internal or external command,
operable program or batch file.
Details:
domainEmitter: [object Object]
domainThrown: false
gulp-scss-lintは内部でRuby製のscss-lintを利用しています。そのためまずscss-lintをインストールします。その後、gulp上でscss-lintを実行する為のgulp-scss-lintをインストールします。
scss-lintのインストールは、PCにRubyがインストールされている必要があります。ruby -vを実行してRubyのバージョンが表示されればインストールされていますが、以下のように表示される場合はインストールされていません。
ruby -v
'ruby' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
以下のサイトからRubyのインストーラーをダウンロードします。Windowsが64bitの場合はx64版、32bitの場合はx86版を選択します。
https://rubyinstaller.org/downloads/
Rubyをインストールすると最後にMSYS2のインストールを引き続き行うか確認があります。MSYS2はインストールしなくてもscss-lintのインストールは可能です。ダイアログのチェックボックスはデフォルトでONになっていますが、OFFにして終了します。
Rubyインストール後、再度ruby -vを実行してRubyがインストールされていることを確認します。
ruby -v
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x64-mingw32]
次に以下を実行してscss-lintをインストールします。gemはRubyのパッケージを管理するパッケージ管理システムです。Rubyをインストールすることで実行できるようになります。
gem install scss_lint
最後に、gulp-scss-lintがインストールされていない場合は以下を実行してインストールします。これでgulp上でscss-lintが動作するようになり、gulp-scss-lintを実行してもエラーは発生しません。
npm install gulp-scss-lint
gulp-scss-lintはgulpを起動しgulpfile.jsから実行することになります。そこでgulp上でscss-lintが動作します。ですが、gulpを起動せず直接scss-lintを実行することもできます。対象のscssファイルのあるディレクトリに移動し、そこでscss-lintを実行するとコードのチェックができます。
cd /D C:\xxx\_gulp\src\scss\page
scss-lint





