Lume v3

Lume v3がリリースされています。

いくつか破壊的変更が実施されており、マイグレーションガイドが公開されています。

Site#addの追加とプラグインの振る舞いの変更

Site#copyにおいてコピー対象のファイルが Processor で処理されない問題を改善するため、Site#addが追加されています。このAPIの追加に合わせて、Site#loadAssetsSite#copyRemainingFilesが削除されています (Site#copyv3.0.0で削除されていましたが、v3.0.1で改めて追加され直されています)

Site#addの追加に合わせてプラグインの振る舞いが変更されており、各プラグイン自身はファイルの読み込みは行わず、Site#addで明示的に追加されたファイルのみを処理するよう挙動が変更されているようです。

また、一部のプラグインにおいて、正しい順番でプラグインを登録しないと動作しないよう挙動が変更されています。今まで、プラグインの登録順に関わらず各プラグインが動作するよう設計されていましたが、複数のプラグイン間に依存関係がある場合、この挙動は混乱を招いてしまうということで振る舞いが見直されたようです。この変更に関する移行を補助するため、deno lint向けのプラグインが追加されています (lume/lint.ts)

jsxプラグインの刷新とjsx_preact/liquidプラグインの削除

jsxプラグインがReactからSSXベースへ移行されています。LumeにおいてReactの一部機能はサポートされておらず、混乱を招いてしまうことなどが背景のようです。この移行により、パフォーマンスの改善や非同期コンポーネントのサポートなどが実現されるようです。

jsxプラグインの変更に合わせて、jsx_preactプラグインが削除されています。

また、liquidプラグインも削除されています。LumeでサポートされているNunjucksに文法が近いことや関数が実行できないことなどが背景のようです。

esbuildプラグインの改善

esbuildプラグインにおいてesbuild_deno_loaderが使用されるように変更されています。Deno本体との挙動の互換性が改善されそうです。

dnt v0.42.0

dnt v0.42.0がリリースされています。

Workspaceのサポートが行われ, これに合わせてdeno.jsonも自動で検出されるように改善されています (#462)

また、build()compilerOptions.experimentalDecoratorsオプションが追加されています (#442)。この変更の影響で、legacy decoratorsを有効化したい場合はこのオプションに明示的にtrueを設定する必要があるようです。