【Node.js】typescript.jsでSyntaxError: Unexpected token '?'
2024-5-28 | Node.js
ひっさしぶりにUbuntuのNode.jsのプロジェクトを弄ろうとしたらtypescript.jsでSyntaxError: Unexpected token '?'
が発生してスクリプトが動かない!
概要
この記事では、Node.jsのプロジェクトでtypescript.jsがSyntaxError: Unexpected token '?'
を発生してスクリプトが動かないのをなんとかする手順を掲載する。
下記はエラー全文。
/<project_dir>/node_modules/typescript/lib/typescript.js:139
for (let i = startIndex ?? 0; i < array.length; i++) {
^
SyntaxError: Unexpected token '?'
at wrapSafe (internal/modules/cjs/loader.js:915:16)
at Module._compile (internal/modules/cjs/loader.js:963:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Module.require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/var/www/html/pdl.js/node_modules/gulp-typescript/release/compiler.js:3:12)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
仕様書
- Ubuntu 22.04.2 LTS
- node v12.22.9 -> v22.2.0
- typescript 5.1.6
手順書
このエラーの原因はtypescript
とnode
のバージョンが合ってないために発生するらしい。去年にこのプロジェクトを触った時は普通にスクリプトが動いた記憶があるんだけども…。
node
をインストールし直すことでスクリプトが動くようになった。
インストールはapt
コマンドではなく公式サイトの手順に従った。
念のために実際に私が実行したコマンドを掲載しておく。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install 22
node -v
npm -v
まとめ(感想文)
Node.jsのプロジェクトってNode.js自体が頻繁に更新されてるのが影響してるのか、たまにいじると何かしらの問題がいつも発生して復旧するまでに時間を浪費することが多い気がする今日この頃。