Bot Framework(botbuilder-js)を実行しようとしたらRequest.prototype.closed = function closed()

スポンサードサーチ

事象

案件でしかたなあああああああああく、Microsoft関連の開発をすることになって
Bot Framework SDK for JavaScriptに触れることになったのだけれど、
サンプルを実行しようとしたら下記のエラーが発生した。

$ npm start                                                                                                                                                                                            [main]

> echobot@1.0.0 start
> node ./index.js

/Users/nagayama/study/BotBuilder-Samples/samples/javascript_nodejs/02.echo-bot/node_modules/restify/lib/request.js:848
    Request.prototype.closed = function closed() {
                             ^

TypeError: Cannot set property closed of #<Readable> which has only a getter
    at patch (/Users/nagayama/study/BotBuilder-Samples/samples/javascript_nodejs/02.echo-bot/node_modules/restify/lib/request.js:848:30)
    at Object.<anonymous> (/Users/nagayama/study/BotBuilder-Samples/samples/javascript_nodejs/02.echo-bot/node_modules/restify/lib/server.js:33:1)
    at Module._compile (node:internal/modules/cjs/loader:1254:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
    at Module.load (node:internal/modules/cjs/loader:1117:32)
    at Module._load (node:internal/modules/cjs/loader:958:12)
    at Module.require (node:internal/modules/cjs/loader:1141:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at Object.<anonymous> (/Users/nagayama/study/BotBuilder-Samples/samples/javascript_nodejs/02.echo-bot/node_modules/restify/lib/index.js:10:14)
    at Module._compile (node:internal/modules/cjs/loader:1254:14)

Node.js v18.16.0

解決策

どうやらrestifyを使っているサンプルはNode18への対応を怠っているっぽい。
(なんじゃそりゃ)

このPRより、restifyのv10.0.0以上なら対応しているようなので、
package.jsonに記載されているrestifyのバージョンを上げれば動作した。

小言

MSは、ドキュメントもサンプルもなんなら自分たちで提供しているツールでさえ、まともに管理できていないので、開発者側としては関わるべきじゃない。。。 (利用者としても微妙だけどね)

どうしても関わることになるのなら、納期と報酬をあげてもらうことをお勧めします(笑
MSの案件1つやるより、他の案件2つ回した方が掛かるストレスは少ない。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。