De repente, uno de mis proyectos no se pudo compilar en una computadora portátil con Windows, mientras que exactamente el mismo código funcionaba en una Mac. He leído sobre levantar y agregar nohoist, lo que pareció solucionar el problema para el cliente de Apollo.
"workspaces": { "packages": [ "packages/*" ], "nohoist": [ "**/tslib", "**/tslib/**" ] } Ahora, no uso espacios de trabajo, pero como estoy usando el código anterior en package.json, Yarn solicita el parámetro -W al agregar o eliminar paquetes diciendo:
error Running this command will add the dependency to the workspace root rather than the workspace itself, which might not be what you want - if you really meant it, make it explicit by running this command again with the -W flag (or --ignore-workspace-root-check).No me parece que este sea el mejor camino a seguir. ¿Qué tengo que hacer?
Al agregar la configuración de espacios de trabajo en su package.json , ha habilitado el uso de espacios de trabajo. Es por eso que recibe la advertencia sobre agregar la dependencia a la raíz del espacio de trabajo. nohoist es una opción solo para el espacio de trabajo; se creó para permitir que las bibliotecas de terceros que no son compatibles con el esquema de elevación del espacio de trabajo de hilo se sigan utilizando en los espacios de trabajo. Consulte https://classic.yarnpkg.com/blog/2018/02/15/nohoist/
“nohoist” permite que los espacios de trabajo consuman bibliotecas de terceros que aún no son compatibles con su esquema de elevación. La idea es deshabilitar los módulos seleccionados para que no sean elevados a la raíz del proyecto. En su lugar, se colocaron en el proyecto real (secundario), al igual que en un proyecto independiente, sin espacios de trabajo.
Si no desea utilizar espacios de trabajo, debe eliminar la configuración del espacio de trabajo de su package.json y solucionar su problema de compilación de otra manera.
En realidad, es la forma correcta de excluir algunos paquetes que se necesitan para tener diferentes versiones de ellos en sus paquetes de espacios de trabajo usando la siguiente configuración:
"workspaces": { "nohoist": [ "**/[package-name]", "**/[package-name]/**" ] }Esto ayudará a tener una construcción exitosa.