Liquid error: Could not find asset ****.liquid の原因と対処法


Liquid error: Could not find asset snippets/product-customizer.liquid

Shopifyのテーマ開発をしている際に、このようなエラーが出て困ったので、その経験を共有します。

このエラー分は「ファイルがない」と示しているのですが、実際にこのファイルを削除した記憶、記録はなく、対処に困りました。

原因は、ファイルをテーマに反映させる際に、以下のコマンドを深く理解せずに実行したことが原因でした。

qiita.rb
 $ theme deploy

このコードはTheme Kitのコマンドで、ローカル環境のファイル内容をすべてdeployする時に使います。
このコマンドを私も使用した後に、上記のエラーが表示されました。
このコマンドの注意点は、反映先のファイルがすべてローカル環境のファイル内容に書き換わるので、ローカルにないファイル(例:アプリのファイルなど)も削除されて、ローカルと全く同じ内容のファイルしか残らない点です。

このコマンドを実行したので、必要なファイルが意図せず消えたので、上記のエラーが表示されました。

このコマンドを実行する際は以下のように、「-n」をつけることをおすすめします。

qiita.rb
 $ theme deploy -n

「-n」をつけることで、Shopifyからファイルを削除せずに、deployが実行されます。
[公式ドキュメント](https://shopify.dev/themes/tools/theme-kit/command-reference#deploy)

一度、deployしたテーマでは、削除されたファイルは復元できないと思われます(推測)

もしローカルデータを保持したまま、テーマをdeployしたい場合は、
対象のテーマを複製し、「config.yml」のtheme_idを複製したテーマIDに変更し、「$ theme deploy -n」を実行すれば、ローカルでの作業データを維持したまま、Shopifyにアップロードできました。
(私の場合は、本番テーマを複製したテーマで今回のエラーが出て、戻せなくなったので、再度、本番のテーマを複製して、theme_idを変えるだけでうまく対処できました。)