Estoy usando un espacio de trabajo de yarn, y me pregunto por qué yarn crea un yarn.lock y una carpeta node_modules en los subproyectos al agregar dependencias a través de yarn add ... .
Como ejemplo, imagine el siguiente espacio de trabajo de hilo simple:
{ "private": true, "workspaces: [ "./packages/*" ] }Estructura de archivos con subproyecto llamado "subpaquete".
Luego agrego una dependencia al "subpaquete" usando el siguiente comando:
yarn workspace subpackage add lodashDespués de eso, las carpetas de archivos cambian de la siguiente manera:
Me pregunto por qué yarn crea la yarn.lock y node_modules cuando estoy en un espacio de trabajo e incluso uso explícitamente la versión del espacio de trabajo del comando agregar. ¿No deberían administrarse todas las dependencias a través del directorio raíz del espacio de trabajo?
Realmente no encontré una respuesta clara a esto en la documentación de yarn, sin embargo, esta publicación de blog , que introdujo la característica del espacio de trabajo, confirma claramente el comportamiento esperado:
Si desea modificar una dependencia de un espacio de trabajo, simplemente ejecute el comando apropiado dentro de la carpeta del espacio de trabajo:
$ cd packages/jest-matcher-utils/ $ yarn add left-pad ✨ Done in 1.77s. $ git status modified: package.json modified: ../../yarn.lockTenga en cuenta que los espacios de trabajo no tienen sus propios archivos yarn.lock y la raíz yarn.lock contiene todas las dependencias para todos los espacios de trabajo. Cuando desee cambiar una dependencia dentro de un espacio de trabajo, se cambiará la raíz yarn.lock, así como el paquete.json del espacio de trabajo.