date-fnsで出力される日付に対して、「年」「月」「日」などの表記を使う場合は、日本語用のロケールを使う必要がある。
ロケールをインポートすれば良いのだけど、最近buildでつまづいたのでそのメモ。
importで以下のように書いてあるのがネットでよくあるのだけど、Astroとかでbulidするとエラーになる。
import ja from 'date-fns/locale/ja'
Astroでbulidすると以下のように、サポートしてないよとでる。
Directory import '\node_modules\date-fns\locale\ja' is not supported resolving ES modules imported from \dist\chunks\pages\_slug_.astro.a4697d57.mjs Did you mean to import date-fns/locale/ja/index.js? Error: Directory import '\node_modules\date-fns\locale\ja' is not supported resolving ES modules imported from C\dist\chunks\pages\_slug_.astro.a4697d57.mjs
以下のようにindex.jsまで記述するとそのままビルドが通る。
import ja from "date-fns/locale/ja/index.js";
これはNode.jsのCommonJSとESMの話で、いろいろ調べたけどちゃんと理解するのは難しそうな話。