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:
Questo tutorial è stato testato su Windows 10 e 11.
Per configurare un ambiente di sviluppo per Discourse su Windows, puoi farlo utilizzando la funzione Windows Subsystem for Linux .
Questa configurazione richiede l’installazione di WSL 2. È disponibile solo nelle build di Windows 10 18917 o successive. Daremo per scontato che tu abbia già installato Windows Subsystem for Linux 2 (Ubuntu) sul tuo sistema Windows 10. ATTENZIONE: Installa Ubuntu 18.04, e non 20.04, poiché a…
L’installazione dell’ambiente di sviluppo è banale: basta avviare WSL2, installare Docker e poi utilizzare la nostra configurazione di sviluppo Docker.
Sviluppo con Docker
Poiché Discourse viene eseguito in Docker, dovresti essere in grado di avviare Discourse direttamente dalla tua directory di origine utilizzando un container di sviluppo Discourse.
Vantaggi: Non è necessario installare alcuna dipendenza di sistema, nessuna configurazione richiesta per impostare rapidamente un ambiente di sviluppo.
Svantaggi: Sarà leggermente più lento rispetto all’ambiente di sviluppo nativo su Ubuntu e molto più lento rispetto a un…
Nikolay
(Nikolay)
28 Gennaio 2020, 10:10am
3
Grazie mille. L’hack ha funzionato.
Più tardi proverò a usare WSL2.