UXP Scripting 相対パスによるモジュール読み込み緩和で変わる開発。

UXPScript

Photoshop UXPが24.2にアップデートしたことにより相対パスによるモジュールの読み込みが緩和されました。
これはいわゆるNode.jsのCommonJS modulesになります。外部のScriptファイルを読み込むことができるので
役割を細く分割したモジュールにコードを分けることが可能になりコードの可読性を保ったまま開発規模を大きくすることができます。

つまりUXP Scriptingでもwebpackのようなファイルをまとめるツールを使わなくてもデフォルトで細かくコードを分けることができるようになったわけです。
しかしUXP以前のExtendScriptでも#includeを使って外部Scriptの読み込みはできました。

しかしご覧の通りrequireによる読み込みはUXPはrequireによって変数宣言を行なっているので何を外部から取り込んでいるか一目瞭然です。それに比べて#includeによる読み込みは外部ファイルのコード全体を読み込んでいます。その上コード全体を読み込んだ後にグローバルなスコープに適応してしまうので何が取り込まれているのか非常に分かりにくいです。
また読み込んでほしくない変数、関数の扱いも難しいです。
このような欠点を補った上で外部モジュールの読み込みが扱えるので今後規模の大きいScriptの開発が楽になると考えています。

UI部分とアプリケーション部分とコードを分離することも

もはやScriptUIは使えませんがHTML、CSSでのダイアログUIを定義するモジュールも分離できるので各モジュールの役割を明確にできます。特にUXPになってCSSも書く必要が出てきたのでUIのコードが長くなりがちなので使った方がまとまりやすいです。

個別のモジュールの読み込みができるのでモジュール毎のデバッグ、テストもできます。getEntryWithUrlメソッドによるローカルへのアクセスもできるようになってそろそろExtendScriptからUXPへ徐々に移行を考えてもいい時期かもしれません。

Beer 寄付してサイトを応援する。