目次
概要
Microsoft TeamsでBotを開発しようと思ってBot Framework SDK(JavaScript)を触っていたらサンプルのEcho Botがうまく起動しない。
環境
- Windows 11
- Node.js 18.16.0
公式
以下の公式に沿って実装を進めました。
現象
公式に沿ってサンプルを起動しようとすると以下エラーが発生してBotアプリが起動しない。
$ npm start
> echo-bot@1.0.0 start
> node ./index.js
C:\Users\<UserName>\data\<ProjectName>\node_modules\restify\lib\request.js:848
Request.prototype.closed = function closed() {
^
TypeError: Cannot set property closed of #<Readable> which has only a getter
対策
公式のサンプルだと使用しているrestify
のバージョンが8.5.1
であるが、バージョンを10.0.0
以上にアップグレードすると正常に起動する。
私の場合は以下でバージョンを10.0.0に上げて正常に起動するようになりました。
$ npm install restify@10.0.0
参考:https://github.com/restify/node-restify/issues/1925
余談
Node.jsはあんまり触ったことないので、公式ドキュメントにある以下の部分を真に受けて色々インストールしましたがどうやらあまり関係無かったらしい。これで半日ぐらいの時間が吹っ飛びました。
きちんとドキュメントを読んでnode-gyp
関係にエラーが出てないことを理解できていればこの辺の沼にハマることも無かったよなぁ。