hiro99ma blog

Something technical

js: JSON の import は assert から with になった

2025/03/14

先月、別の PC で書いた JavaScript というか TypeScript のコードを clone して持ってきたらエラーになった。

import _config from './config.json' assert { type: 'json' };
                                    ^^^^^^

SyntaxError: Unexpected identifier 'assert'

“assert” がダメ?
たぶんこれを書いたときもエラーになって、どこかで調べてこうしんたのだろう。
ないと ERR_IMPORT_ATTRIBUTE_MISSING になるのだ。

今回ビルドしている環境はこうだ。

$ node --version
v22.14.0
$ npx tsc --version
Version 5.7.3

tsconfig.json で resolveJsonModule はコメントアウトされていた。
有効にして true にすれば解消しそうな気はするが、それはそれで負けた気がする。

検索すると with を使っていた。

なるほど、途中で変わったのか。
しかし commit してあった package.json で typescript は “^5.7.3” だし、この頃からすでに with のはずなんだが。。。

いや、Import Attributes はコンパイルした JavaScript ファイルにも引き継がれているから関係するのは Node.js のバージョンか。
たぶん前の環境では v18 か v20 くらいを使っている。
履歴を見ると v18 や v20 の途中から切り替わったようだ。

image

v22 では最初から with になっているのだな。


 < Top page


コメント(Google Formへ飛びます)

GitHub

X/Twitter

Homepage