⚠️
TeamsJS で Cannot read properties of undefined (reading 'fd') エラーになる
Teams JavaScript クライアント ライブラリ (TeamsJS) を 2.29.0 にアップグレードしたところ、突然動作しなくなりました。
Uncaught TypeError: Cannot read properties of undefined (reading 'fd')
at n20.useColors (@microsoft_teams-js.js?v=3fe307ba:1390:104)
at Function.t14 (@microsoft_teams-js.js?v=3fe307ba:153:55)
at @microsoft_teams-js.js?v=3fe307ba:1660:13
このエラーは、Vite プラグインである vite-plugin-env-compatible を使用している場合に発生します。このプラグインは import.meta.env を process.env に変換します。process.stderr.fd にアクセスしようとした際、stderr が undefined となるため、コピー時の不具合が原因と考えられます。Jest では import.meta が利用できないため、このプラグインの利用が必須となりますが、TeamsJS と競合する場合は利用できません。
現時点でのポイントは以下の通りです。
- vite-plugin-env-compatible を利用すると TeamsJS 2.29.0 でエラーが発生する
- process.stderr.fd へのアクセス時に stderr が undefined となる
- Jest では import.meta が使えないためプラグインを利用する
- TeamsJS との競合がある場合はプラグインの利用が難しい
ひとまず Issue を作成しました。
Discussion