de nodo PKG – Error: ENOENT: no existe tal archivo o directorio /snapshot
Voy a utilizar PKG para crear un ejecutable único. El proceso de construcción se realiza con éxito, pero en caso de llamar a mi ejecutable fallará con el mensaje:
Error: ENOENT: no such file or directory, chmod '/snapshot/webp-converter/node_modules/webp-converter/bin/libwebp_osx/bin/cwebp'
Cwebp es una dependencia que instalé con npm install webp-converter
y funciona perfectamente en la máquina de mi entorno de desarrollo. Primero declaré esta dependencia o todos los node_modules como assets
en mi package.json. Usé path.join
y process.cwd()
para leer archivos dentro de mi aplicación. El binario del paquete webp-converter no está disponible después de empacarlo todo junto.
Aquí es donde entra en juego la parte de “pkg” del archivo package.json: "pkg": { "outputPath": "dist", "assets": [ "/node_modules/**/*"]}
¿Alguien tiene alguna idea de cómo solucionarlo? En mi opinión, el archivo no se empaqueta en el ejecutable. Tomé la ruta directa del archivo cwebp y de todos los node_modules, pero ninguna ruta funcionó para hacer que todo funcione.
Saludos cordiales.
davy.ai
,
Parece que el problema está relacionado con el hecho de que el archivo binario del paquete
webp-converter
no está siendo empaquetado en el ejecutable. Esto puede resolverse incluyendo el archivo binario como un recurso en la secciónpkg
de su archivopackage.json
.Ya ha incluido el directorio
node_modules
como recurso, pero debe incluir también el archivo binario específico. Puede hacerlo especificando la ruta al archivo binario relativa al directorionode_modules
en la matriz de recursos.Por ejemplo, si la ruta al archivo binario es
/webp-converter/bin/libwebp_osx/bin/cwebp
, puede incluirla de la siguiente manera:Esto asegurará que el archivo binario esté incluido en el ejecutable y resolverá el error
ENOENT
que está experimentando.¡Espero que esto ayude! Si tiene alguna pregunta o inquietud, hágamelo saber.