スポンサードサーチ
事象
案件でしかたなあああああああああく、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つ回した方が掛かるストレスは少ない。