Nikolay
(Nikolay)
23 Gennaio 2020, 10:35am
1
Ciao, non riesco a sviluppare su Windows perché vedo solo uno schermo vuoto. Quando apro la console, ricevo questi errori:
(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
e molti altri errori simili.
Quindi, fondamentalmente, Discourse non riesce a caricare gli script. Quando apro uno script in una finestra separata, ricevo il seguente errore:
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')")
Quindi ho iniziato a investigare e ho capito che il problema riguarda Sprockets. Ho montato la directory di Discourse da Windows a Docker e il file system non è sensibile alle maiuscole/minuscole. Sembra che Sprockets funzioni solo su file system simili a Linux (come ext4) che possono rendere le directory sensibili alle maiuscole/minuscole.
Esiste una soluzione a questo problema?
Grazie
AGGIORNAMENTO: questo problema relativo a Sprockets è documentato su GitHub: FileStore cache patch in v3.6 causes directory name collisions in Windows · Issue #283 · rails/sprockets · GitHub
ma la segnalazione è ancora aperta e non c’è alcuna soluzione
sam
(Sam Saffron)
28 Gennaio 2020, 6:36am
2
È divertente che @pixeltrix abbia incrociato questo ieri e abbia usato questo trucco per aggirarlo:
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.
Consiglio di installare direttamente WSL2 e di utilizzare la nostra configurazione WSL2, che è molto più veloce e più facile da comprendere:
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…
L’installazione dell’ambiente di sviluppo è banale: basta avviare WSL2, installare Docker e poi utilizzare la nostra configurazione di sviluppo 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 …
Nikolay
(Nikolay)
28 Gennaio 2020, 10:10am
3
Grazie mille. L’hack ha funzionato.
Più tardi proverò a usare WSL2.