⚠️

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 を作成しました。

https://github.com/IndexXuan/vite-plugin-env-compatible/issues/18

Discussion