Mi proyecto tiene una estructura como esta:
workspace |__pkg1 |__tsconfig.json |__package.json |__ts/ |__pkg2 |__tsconfig.json |__package.json |__ts/ |__lerna.json |__package.json |__tsconfig.jsonEn workspace/package.json, especifiqué que la versión mecanografiada fuera "^4.2.3". Para instalar la dependencia para todos los paquetes, ejecute el comando en el directorio del espacio de trabajo:
npm install & lerna bootstrap && lerna run build"lerna bootstrap" instalará todas las dependencias para pkg1 y pkg2, "lerna run build" (equivalente a ejecutar "npx tsc" en pkg1 y pkg2) compilará mecanografiado en la carpeta ts/ de pkg1 y pkg2. Resultó que la versión tsc en el directorio del espacio de trabajo es de hecho 4.2.3, pero en pkg1 y pkg2, la versión mecanografiada es 4.5.2
cd pkg1 && npx tsc -v # output is Version 4.5.2Intenté (1) cambiar "^4.2.3" a "4.2.3" en workspace/package.json, (2) especificar la versión mecanografiada explícitamente en package.json de pkg1 y pkg2. (3) elimine todos los archivos package-lock.json. Sin embargo, ninguno de los dos funciona. ¿Cómo puedo arreglarlo?
En la práctica, necesito crear una imagen acoplable limpia para este proyecto. Tiene varios paquetes, por lo que no quiero instalar TypeScript uno por uno en cada uno de los directorios de paquetes.
intente eliminar todo el código relacionado con mecanografiado del paquete-lock.json e instale npm nuevamente y verifique. Creo que esto debería resolver el problema, ya que también lo he experimentado antes.