Nikolay
(Nikolay)
23 Enero, 2020 10:35
1
Hola, no puedo desarrollar en Windows porque obtengo una pantalla en blanco. Cuando abro la consola, obtengo estos errores:
(X) ember_jquery.js?1579775136.5740232:1 Uncaught Error: Errno::EEXIST: File exists @ dir_s_mkdir - /var/discourse/tmp/cache/assets/sprockets/v3.0/pr
(in /home/gaijinsailor/.rbenv/versions/2.6.2/lib/ruby/2.6.0/fileutils.rb:239:in `mkdir')
at ember_jquery.js?1579775136.5740232:1
y muchos errores similares.
Básicamente, Discourse no puede cargar los scripts. Cuando abro un script en una ventana separada, obtengo el siguiente error:
Script: http://localhost:3000/assets/locales/en_US.js?1579775136.5398135
Body: throw Error("Errno::EEXIST: File exists @ dir_s_mkdir - /var/discourse/tmp/cache/assets/sprockets/v3.0/x2\n (in /home/gaijinsailor/.rbenv/versions/2.6.2/lib/ruby/2.6.0/fileutils.rb:239:in `mkdir')")
Así que empecé a investigar y me di cuenta de que el problema está con Sprockets. Monté el directorio de Discourse desde Windows en Docker y el sistema de archivos no distingue entre mayúsculas y minúsculas. Parece que Sprockets solo funciona en sistemas de archivos tipo Linux (como ext4) que pueden hacer que los directorios sean sensibles a las mayúsculas y minúsculas.
¿Existe alguna solución para este problema?
Gracias
ACTUALIZACIÓN: Este problema con Sprockets está documentado en GitHub: FileStore cache patch in v3.6 causes directory name collisions in Windows · Issue #283 · rails/sprockets · GitHub
pero el problema sigue abierto y no hay solución
sam
(Sam Saffron)
28 Enero, 2020 06:36
2
Es gracioso que @pixeltrix se topara con esto ayer y usara este truco para solucionarlo:
committed 12:09PM - 27 Jan 20 UTC
Sprockets 3.0 and later uses Base64 digests for cache paths and these
present pr… oblems when used with NTFS on Windows which is case-insensitive.
By allowing the overriding of the cache path from an environment variable
we can use a Docker volume to cache the asset compilation. This is actually
faster on both Mac and Windows than the default path.
Recomiendo simplemente instalar WSL2 y usar nuestra configuración de WSL2, que es mucho más rápida y fácil de entender:
This tutorial has been tested on Windows 10 and 11.
To set up a development environment for Discourse on Windows, you can do it using Windows Subsystem for Linux feature.
This setup requires the WSL 2 installation. It is only available in Windows 10 builds 18917 or higher. We’ll assume that you already installed Windows Subsystem for Linux 2 (Ubuntu) on your Windows 10 system. WARNING: Install Ubuntu 18.04, and not 20.04 since some installations will fail on 20.04. For m…
La instalación del entorno de desarrollo es trivial; solo necesitas poner en marcha WSL2, instalar Docker y luego usar nuestra configuración de desarrollo con Docker.
Developing using Docker
Since Discourse runs in Docker, you should be able to run Discourse directly from your source directory using a Discourse development container.
Pros: No need to install any system dependencies, no configuration needed at all for setting up a development environment quickly.
Cons: Will be slightly slower than the native dev environment on Ubuntu, and much slower than a native install on MacOS.
See also Developing Discourse using a Dev Container …
4 Me gusta
Nikolay
(Nikolay)
28 Enero, 2020 10:10
3
Muchas gracias. El truco funcionó.
Más tarde probaré a usar WSL2.
1 me gusta