react native - scripts - Reaccionar nativo: npm vincular la dependencia local, no se puede resolver el módulo
package.json scripts (5)
Estoy desarrollando un paquete de ui para reaccionar de forma nativa. Intento construir un proyecto de ejemplo para probar este botón. La estructura del directorio es la siguiente:
my-button/
package.json
index.js
example/
package.json
index.js
Intento usar el npm link
:
cd my-button
npm link
cd example
npm link my-button
En el example/node_modules/
puedo ver el enlace simbólico de mi botón, VSCode también puede completar automáticamente la función en el paquete de mi botón.
Pero ejecute la aplicación de ejemplo mostrará un error:
Unable to resolve module my-button ...
Module does not exist in the module map or in these directories: ...
Pero la ruta en el mensaje de error es correcta.
¿No sabe dónde me equivoqué o en React-Native tengo alguna forma especial de lidiar con la dependencia local de enlaces?
También probé el npm install file:../.
. Funciona bien de esta manera, pero no es fácil actualizar la dependencia en el example/
después de que edité mi botón.
Cambia tu paquete.json
//...
"dependencies": {
//...
"my-button" : "file:../"
},
//...
El comando npm link
no funciona porque el empaquetador React Native no admite los enlaces simbólicos .
Después de una pequeña investigación, descubrí que hay dos maneras de hacerlo.
- Utilice el paquete de transporte en la aplicación de ejemplo. Haul admite enlaces simbólicos, por lo que puede utilizar el
npm link
como de costumbre. - Use la dependencia local a través del
file:../
y luego edite los archivos en la carpetanode_modules
o reinstálelos cada vez que realice cambios.
Considero que Haul funciona muy bien para este caso de uso e incluso configura un pequeño proyecto de inicio que también incluye un storybook , lo que es realmente útil si tiene muchos componentes entre los que cambiar.
Me encontré con el mismo problema. Si bien no pude hacer que npm link
funcione como debería, lo npm link
instalando el paquete local en la carpeta del proyecto
npm install ../<package-folder> --save
Esto instalará el paquete como un paquete regular pero desde la carpeta local. El inconveniente es que los cambios que realice en el paquete no se reflejarán. Tendrá que npm install
después de cada cambio.
Pruebe wml ( https://github.com/wix/wml )
Es una alternativa al npm link
que en realidad copia los archivos modificados de las carpetas de origen a destino
# add the link to wml using `wml add <src> <dest>`
wml add ~/my-package ~/main-project/node_modules/my-package
# start watching all links added
wml start
Tratar de correr
npm run watch
Dentro del paquete de botones. Actualmente, estoy usando esto para aplicar los cambios de la biblioteca a mi proyecto principal. ¡Por favor, déjeme saber si funciona!