Búsqueda de sitios web

node.js - la compilación del repositorio de typescript falla en mi máquina pero pasa en docker de ubuntu


Tengo un repositorio de TypeScript que no se puede compilar en mi máquina con el error...

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.

No puedo encontrar ninguna mención de @types/graphql cuando hago grep en node_modules. Sin embargo, sí encuentro AsyncIterator en el módulo de TypeScript...

cuando ejecuto la compilación en un contenedor docker en ubuntu, pasa bien, pero en mi máquina local OSSierra obtengo este error. He encontrado soluciones en línea que dicen que hay que agregar "esnext" a las libs en tsconfig.json, y esto parece funcionar, pero este repositorio no está bajo mi control y todavía no tengo explicación de por qué esto está sucediendo. ¿Alguna idea?

Respuesta #1

Lo resolvimos eliminando una carpeta rogue node_modules de un directorio superior (en nuestro caso, el directorio home).

Aparentemente, la resolución de módulos de TypeScript/Node busca en los directorios superiores más "información", tal vez alguien más tenga una mejor explicación :)