BabelプラグインをRust (SWC) に移植して、JavaScriptのコンパイルを爆速にする 〜基本編〜 | Wantedly Engineer Blog
こんにちは、WantedlyのDX (Developer Experience) ...
https://www.wantedly.com/companies/wantedly/post_articles/386129
Photo by Matt Hudson on Unsplash
SWCはJavaScriptのコードを変換するツール (トランスパイラ) です。同じ用途のツールとしてBabelがよく知られていますが、BabelがJavaScriptで書かれているのに対してSWCはRustで書かれているためより高速に動作します。
Wantedlyでは現在SWCの導入を試行中です。WantedlyではBabelプラグインを自作して運用しているため、その移行で困難があることがわかっていますが、詳しくは以下の記事を参照してください。
さて、SWCの設定は .swcrc というファイルに書くのですが、このファイルがなぜかコミットされていないという事象が発生していました。
もうタイトルから想像がついているかと思いますが、悪さをしていたのは .gitignore の以下のような行でした。
# Vimのスワップファイルはコミットしない
*.sw*
これは foo.swp
や bar.swo
などのファイルを除外するためのルールですが、 .swcrc
もこのパターンに該当してしまいます。
以下のようにすることで対応できます。
# 拡張子は swp, swo, swr, ... と増えていくが、4文字になることはない。
# そのため、 ? を使えばfalse positiveはなくなる
*.sw?
# または、単に例外ルールを足しておく
*.sw*
!.swcrc
Vimが悪いわけではないですが、思いもよらぬところでVimの影が忍び寄っていたという話でした。