Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Renaming a folder doubles the folder name in file paths (console errors show /lib/lib/helper.js)

Aperta Adatta ai principianti
#4,365 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 3 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
82/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
javascript, redux
Ambito
frontend

Direzione di ricerca

Il bug si trova nel caso UPDATE_FILE_NAME di client/modules/IDE/reducers/files.js, dove il ciclo sui figli passa action.id a setFilePath invece di childId. Leggi quel caso e l'helper setFilePath, poi aggiungi test del reducer per la rinomina di cartelle di primo livello e annidate in files.test.js, che attualmente coprono solo l'eliminazione. È completato quando rinominando la cartella js in lib i percorsi dei figli diventano come /lib/helper.js e i nuovi test passano.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Awaiting Maintainer Approval Bug
p5.js version

2.3.4

What is your operating system?

Mac OS

Web browser and version

155.0.8059.40 (Official Build) (arm64)

Actual Behavior

After renaming a folder in the sidebar, the editor stores a wrong path for the
folder and every file inside it: the folder's own name is added twice. This shows
up in console errors. A script in a renamed folder lib reports its error at
/lib/lib/helper.js:1:1 instead of /lib/helper.js:1:1

When logged in, the wrong path only lasts until the next save (each save rebuilds
the paths). When logged out, nothing is saved to the server, so it stays wrong for
the whole session.

Cause: in client/modules/IDE/reducers/files.js, the UPDATE_FILE_NAME case loops
over the folder's children but passes action.id (the folder itself) instead of
childId to setFilePath:

updatedFile.children.forEach((childId) => {
  setFilePath(newState, action.id, childPath);
});
Expected Behavior

After renaming folder js to lib, files inside it should have the path
/lib/..., and the console should show at /lib/helper.js:1:1.

Steps to reproduce
  1. Open editor.p5js.org while logged out.
  2. Create a folder js, and inside it a file helper.js containing noSuchFunction();
  3. In index.html, add <script src="js/helper.js"></script> above the sketch.js script tag.
  4. Press Play and expand the error in the console: at /js/helper.js:1:1 (correct).
  5. Rename the folder js to lib and change the script tag to lib/helper.js.
  6. Press Play and expand the error: at /lib/lib/helper.js:1:1 (wrong).
Image Image

Suggested fix: pass childId instead of action.id to setFilePath in the
UPDATE_FILE_NAME case. I've tested this locally with unit tests for the reducer
(top-level and nested folder renames); the existing tests in files.test.js only
cover deletion. I'd be happy to open a PR with the fix and tests if this is approved.

Related: #2186 (mutation in the files reducer), a different issue in the same file.

Lingua principale
JavaScript
Stelle
1.7k
Fork
1.7k
Merge medio
5g 16h
PR unite (30g)
8

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di processing/p5.js-web-editor

Tutte le issue di processing/p5.js-web-editor

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.