Nodejs

date-fnsの日本語表記ロケールのビルドエラー解消について

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の話で、いろいろ調べたけどちゃんと理解するのは難しそうな話。

タイトルとURLをコピーしました