エメラルドマウンテンの麓。

何故かVSCode拡張だった汎用プリプロセッサをgulpプラグインに移行しました

VSCode 拡張として開発していたコメントベースの汎用プリプロセッサ iz-preprocessor は gulp プラグインに移行しました。今月に見つかったバグを修正したものを Visual Studio マーケットプレイスに登録したのを最後に、VSCode 拡張での更新は提供されないと思います。

gulp プラグイン化と npm への登録

Qiita の記事『gulpでスタティックなサイトを生成する』を参考に gulp プラグインの作法で書き換えたところ、コードが短くなり、ビルド作業が楽になる、といい事ずくめでした。

何よりも Visual Studio Code とその拡張が不要になったことで他の開発者にも触ってもらいやすくなったのが大きいです。今にしたら、何故 VSCode 拡張で実装してしまったのか、不思議です。

若干の不満、ファイルが欠落する

iz-preprocessor Visual Studio Marketplace

まれに gulp.src() でピックアップされるファイルが欠落するようで、gulp-sass でコケる時があります。この場合は、再実行すると成功します。

このような問題は VSCode 拡張では、fs をラップして常に非同期で処理できるようにした izFS を使いだしてからは遭遇していませんでした。その点だけが不便です。

しかし再実行の手間と、以前のように拡張機能を実行してから gulp タスクを実行する手間を比べれば、僕は前者に軍配を上げます。gulp のアップデートで将来に改善されることを期待します。


続いても Qiita の記事『初めてのnpm パッケージ公開』を参考に npm の登録も終え version 1.0.0 を公開することが出来ました。

gulp-util の注意

先に紹介した gulp プラグイン作成の記事では、gulp-utilreguire してプラグイン作成を進めていますが、現在 gulp-util は Deprecated です。最終の 3.0.8 が公開されたのは2016年12月となっています。しかし現在の週間ダウンロード数は75万です。

This package has been deprecated
Author message:

gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5

僕は 1.0.0 の公開直後に気が付いて、提示されている記事を元にプラグインを書き換えました。gulp-util はパッケージを纏めて名前空間を付けているだけのようで、プラグインに必要なパッケージだけを reguire するように書き換えました。依存パッケージが減って満足です。これを version 1.0.1 として公開しました。

本件に関する日本語の記事『gulp-util の問題、deprecation warning と migration path について』がこの文書の執筆にあたって理解を助けてくれました。ありがとうございます。