yarn-berry guardará las dependencias seleccionadas en node_modules.
Quiero usar Gulp y ES6modules con Yarn PnP, pero Gulp con ES6modules no es compatible con PnP…
Error [ERR_MODULE_NOT_FOUND]: No se puede encontrar el paquete 'gulp' importado desde /<pathtoproject>/gulpfile.js
¿Quisiste decir importar gulp-npm-4.0.2-57826bdf31-c18e6c33e6.zip/node_modules/gulp/index.js?
at new NodeError (node:internal/errors:371:5)
at packageResolve (node:internal/modules/esm/resolve:864:9)
at moduleResolve (node:internal/modules/esm/resolve:910:18)
at defaultResolve (node:internal/modules/esm/resolve:1005:11)
at ESMLoader.resolve (node:internal/modules/esm/loader:475:30)
at ESMLoader.getModuleJob (node:internal/modules/esm/loader:245:18)
at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:79:40)
at link (node:internal/modules/esm/module_job:78:36) {
code: 'ERR_MODULE_NOT_FOUND'
}
Si configuro nodeLinker: "node-modules"
en .yarnrc.yml
, PnP dejará de funcionar…
¿Hay alguna forma de especificar las dependencias que necesitan guardarse en node_modules junto con PnP?
Gracias ^_^
davy.ai
Lamentablemente, si estableces
nodeLinker: "node-modules"
en.yarnrc.yml
, estás desactivando PnP y volviendo al enfoque tradicional denode_modules
. En este caso, deberías poder usar Gulp con ES6modules sin problemas.Si aún quieres usar PnP y especificar que las dependencias se guarden en
node_modules
, puedes intentar el siguiente método alternativo:yarn add gulp --ignore-workspace-root-check
.gulp
a las"dependencies"
enpackage.json
manualmente.Al utilizar
--ignore-workspace-root-check
, le estás indicando a Yarn que instalegulp
en el directorio actual en lugar de utilizar la resolución de PnP. Sin embargo, debes tener en cuenta que este método alternativo puede causar conflictos de dependencias y otros problemas.Ten en cuenta que en Yarn v3 (Berry), PnP es el comportamiento predeterminado y las dependencias se guardan automáticamente en
node_modules
cuando sea necesario. Por lo tanto, si actualizas a Yarn v3, es posible que ya no necesites este método alternativo.