node.js - typescript deposu bilgisayarımda derlenemiyor ama ubuntu docker'da geçiyor


Bilgisayarımda derleme yaparken hata veren bir TypeScript deposuna sahibim...

tsc --pretty -p tsconfig.json
../../../../../../node_modules/@types/graphql/subscription/subscribe.d.ts:17:12 - error TS2304: Cannot find name 'AsyncIterator'.

17 ): Promise<AsyncIterator<ExecutionResult> | ExecutionResult>;
              ~~~~~~~~~~~~~


../../../../../../node_modules/@types/graphql/subscription/subscribe.d.ts:29:12 - error TS2304: Cannot find name 'AsyncIterable'.

29 ): Promise<AsyncIterable<any>>;
              ~~~~~~~~~~~~~


error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

node_modules içinde arama yaptığımda @types/graphql ile ilgili herhangi bir şey bulamıyorum. Ancak typescript modülünde AsyncIterator buluyorum...

Ubuntu'da bir Docker konteynerinde build işlemini çalıştırdığımda sorun olmuyor, ama yerel OSSierra bilgisayarımda bu hatayı alıyorum. İnternette tsconfig.json dosyasındaki libs kısmına "esnext" ekleyin diyen çözümler buldum ve bu gerçekten işe yarıyor gibi görünüyor, ama bu depo benim kontrolüm altında değil ve bunun neden olduğunu hâlâ anlayabilmiş değilim. Fikir sahibi olan var mı?

Cevap #1

Bunu, üst dizindeki (bizim durumumuzda ana dizin) hatalı bir node_modules klasörünü kaldırarak çözdük.

Görünüşe göre TypeScript/Node'un modül çözümlemesi, daha fazla "bilgi" için üst dizinlere bakıyor, belki birisi daha iyi bir açıklamaya sahiptir :)