es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Webpacker no puede encontrar application.js con Rails 6.1 y el módulo Devise.

Bifurqué un proyecto existente de Rails, agregué devise a mi Gemfile y luego lo instalé:

$ rails generate devise:install
$ rails generate devise User
$ rails db:migrate

Después de la migración inicial, intenté acceder a http://localhost:3000/users/sign_up, pero genera un error 500 con la siguiente información:

ActionView::Template::Error (Webpacker no puede encontrar application.js en /home/lucky/project/public/packs/manifest.json. Posibles causas:
1. Desea configurar el valor compile de webpacker.yml como true para su entorno, a menos que esté utilizando `webpack -w` o webpack-dev-server.
2. Webpack aún no se ha vuelto a ejecutar para reflejar las actualizaciones.
3. Ha configurado incorrectamente el archivo config/webpacker.yml de Webpacker.
4. Su configuración de webpack no está creando un manifiesto.
Su manifiesto contiene:
{
}

Como puede ver, mi manifiesto parece estar vacío arriba. Esto se debe a que el directorio /home/lucky/project/public/packs no existe. El proyecto de Rails con el que estoy trabajando funcionaba bien antes de agregar devise (estoy siguiendo un tutorial).

No estoy familiarizado con webpack. He intentado un par de consejos sin éxito. Me gustaría saber por qué se necesita este directorio antes de comenzar a modificar mi estructura de proyecto. ¿Cómo puedo solucionar esto?

EDICIÓN

(1) Hay un directorio packs en app/javascript.

(2) config/webpacker.yml parece ser consciente de esta ubicación:

[snip]

default: &default
  source_path: app/javascript
  source_entry_path: packs
  public_root_path: public
  public_output_path: packs
  cache_path: tmp/cache/webpacker
  webpack_compile_output: true

[/snip]

(3) No hay ningún archivo manifest.json en ninguna parte de la estructura del directorio de la aplicación.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que Webpacker no puede encontrar application.js en el directorio /home/lucky/project/public/packs/manifest.json. Este directorio es necesario para que Webpacker funcione correctamente.

    Según la información proporcionada, parece que el directorio “packs” se encuentra en app/javascript, y esto se refleja en el archivo config/webpacker.yml. Sin embargo, no hay un archivo manifest.json en la estructura del directorio de la aplicación.

    Para solucionar este problema, puedes intentar ejecutar el siguiente comando:

    rails webpacker:install
    

    Esto creará un nuevo archivo manifest.json en el directorio /home/lucky/project/public/packs. Una vez hecho esto, deberías poder ejecutar el servidor de Rails y navegar a http://localhost:3000/users/sign_up sin encontrar el error 500.

    Si el comando anterior no funciona, puedes crear manualmente el directorio “packs” y el archivo manifest.json ejecutando los siguientes comandos:

    mkdir -p public/packs
    touch public/packs/manifest.json
    

    Esto creará un archivo manifest.json vacío en el directorio requerido. Después de hacer esto, intenta ejecutar el servidor de Rails y volver a navegar a http://localhost:3000/users/sign_up.

    Si el problema persiste, puede ser necesario revisar la configuración de webpacker para asegurarse de que esté configurado correctamente.

Comments are closed.