riotjs-loaderを3.0.0->4.0.0に変更するとscoped cssがデフォルトになる

riotjs-loaderの実態


こんにちは、WOWの梶野です。
別の記事で、riotjs-loaderを 3.0.0 から 4.0.0
に変更すると、真偽値属性が使えるようになると書きましたが、実際は riotjs-loader が依存している riot-compiler が 2.3.22 から 3.0.0 に変更になっただけでした。

つまり、どういうことかというと、自分のプロジェクトでriot v3を使っていたつもりだけど、今まではコンパイラがv2指定だったので、旧バージョンで動作していたということ。
件名の内容に戻ると、scoped css は riot v3 からデフォルトでした。
確かにコンポーネント志向なので、それで正しい動きですが、loaderから依存していたとは思っていませんでした…。

riot-compilerを最新版にする


riot-compiler の最新は現時点で 3.2.4 でした。
riotjs-loader は riot-compiler が dependencies に定義されている点が厄介で、自分のプロジェクトの node_modules\riot-compiler を使用してくれず、 node_modules\riotjs-loader\node_modules\riot-compiler が使用されます。

あまり自由が効かないので、この際自分でloaderを作ってみました。
ついでに、コンパイルオプションも使うつもりはなかったので、差別化としてシンプルなloaderにしました。

riot-simple-loader


riot-simple-loader
https://www.npmjs.com/package/riot-simple-loader

npmモジュールとして公開しているので、良かったら使ってやってください。

使い方は上記の公式npmページと、サンプルをgithubにあげていますので参考にしてください。
https://github.com/nekijak/riot-simple-loader-sample

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

2 × four =