26 KiB
Segui queste linee guida per impostare freeCodeCamp localmente sul tuo sistema. Questo è altamente raccomandato se si desidera contribuire regolarmente.
Per alcuni dei flussi di lavoro di contributo, è necessario avere freeCodeCamp in esecuzione localmente. Ad esempio, l'anteprima delle sfide di codifica o il debug e la correzione dei bug nel codebase.
[!SUGGERIMENTO] Se non sei interessato a configurare freeCodeCamp localmente considera di utilizzare Gitpod, un ambiente dev online gratuito.
(Avvia un ambiente dev ready-to-code per freeCodeCamp nel tuo browser.)
Prepara la tua macchina locale
Inizia installando il software prerequisito per il tuo sistema operativo.
Sosteniamo principalmente lo sviluppo sui sistemi *nix. Il nostro staff e collaboratori della community lavorano regolarmente con il codebase utilizzando strumenti installati su Ubuntu e macOS.
Supportiamo anche Windows 10 via WSL2, che puoi preparare leggendo questa guida.
Alcuni membri della comunità sviluppano anche su Windows 10 nativamente con Git per Windows (Git Bash) e altri strumenti installati su Windows. Al momento non disponiamo di un supporto ufficiale per una tale configurazione, si consiglia invece di utilizzare WSL2.
Prerequisiti:
Prerequisito | Versione | Note |
---|---|---|
Node.js | 12.x |
LTS Schedule |
npm (viene fornito in bundle con node) | 6.x |
Non ha LTS rilasci, utilizziamo la versione in bundle con Node LTS |
Server Community MongoDB | 3.6 |
Note di rilascio, Nota: Siamo attualmente su 3.6 , è previsto un aggiornamento. |
[!PERICO] Se hai una versione diversa, installa la versione consigliata. Possiamo supportare solo i problemi di installazione per le versioni consigliate. Vedi risoluzione dei problemi per i dettagli.
Se Node.js è già installato sulla macchina, eseguire i seguenti comandi per convalidare le versioni:
node -v
npm -v
[!SUGGERIMENTO] Consigliamo vivamente di aggiornare le ultime versioni stabili del software sopra elencato, note anche come versioni a lungo termine (LTS).
Una volta che avete i prerequisiti installati, è necessario preparare il vostro ambiente di sviluppo. Questo è comune per molti flussi di lavoro di sviluppo, e si dovrà fare solo una volta.
Segui questi passaggi per preparare il tuo ambiente di sviluppo:
-
Installa Git o il tuo client Git preferito, se non lo hai già. Aggiornamento alla versione più recente; la versione che è venuto in bundle con il vostro sistema operativo potrebbe essere obsoleta.
-
(Facoltativo ma consigliato) Imposta una chiave SSH per GitHub.
-
Installa un editor di codice a tua scelta.
Consigliamo vivamente di utilizzare Visual Studio Code o Atom. Questi sono grandi, liberi e open source editor di codice.
-
Impostare linting per l'editor di codice.
Dovresti avere ESLint in esecuzione nel tuo editor, e metterà in evidenza tutto ciò che non è conforme a freeCodeCamp's JavaScript Style Guide.
[!SUGGERIMENTO] Per favore non ignorare alcun errore di linting. Essi sono destinati a aiutare e per garantire un codice pulito e semplice.
Fork il repository su GitHub
Forking is a step where you get your own copy of freeCodeCamp's main repository (alias repo) on GitHub.
Questo è essenziale, in quanto consente di lavorare sulla propria copia di freeCodeCamp su GitHub, o per scaricare (clonare) il tuo repository per lavorare localmente. Più tardi, potrai richiedere modifiche da tirare nel repository principale dal tuo fork tramite una pull request (PR).
[!TIP] Il repository principale su
https://github.com/freeCodeCamp/freeCodeCamp
è spesso indicato come il repositoryupstream
.Il tuo fork su
https://github.com/YOUR_USER_NAME/freeCodeCamp
è spesso indicato come il repositoryorigin
.
Segui questi passaggi per effettuare il fork del repository https://github.com/freeCodeCamp/freeCodeCamp
:
-
Vai al repository freeCodeCamp su GitHub: https://github.com/freeCodeCamp/freeCodeCamp
-
Fare clic sul pulsante "Fork" nell'angolo in alto a destra dell'interfaccia (Maggiori dettagli qui)
-
Dopo che il repository è stato forked, sarai portato alla tua copia del repository freeCodeCamp su
https://github.com/YOUR_USER_NAME/freeCodeCamp
Clona il tuo fork da GitHub
Clonazione è dove scarichi una copia di un repository da una posizione remota
che è di proprietà di te o di qualcun altro. Nel tuo caso, questa posizione remota è il tuo fork
del repository di freeCodeCamp che dovrebbe essere disponibile su https://github.com/YOUR_USER_NAME/freeCodeCamp
.
Esegui questi comandi sulla tua macchina locale:
-
Apri un terminale / prompt dei comandi / Shell nella directory dei progetti
cioè:
/yourprojectsdirectory/
-
Clona il tuo fork di freeCodeCamp, sostituendo
YOUR_USER_NAME
con il tuo nome utente GitHubgit clone --depth=1 https://github.com/YOUR_USER_NAME/freeCodeCamp.git
Questo scaricherà l'intero repository freeCodeCamp nella directory dei tuoi progetti.
Nota: --depth=1
crea un clone superficiale del fork, con solo la cronologia più recente/commit.
Imposta la sincronizzazione dal genitore
Ora che hai scaricato una copia del fork, dovrai configurare un remoto upstream
nel repository padre.
Come accennato poc'anzi, il repository principale si riferisce al repository upstream
. Il tuo fork si riferisce al repository origin
.
Hai bisogno di un riferimento dal tuo clone locale al repository upstream
oltre al repository origin
. Questo è in modo che è possibile sincronizzare le modifiche dal repository principale senza il requisito di forking e clonazione ripetutamente.
-
Cambia la directory nella nuova directory freeCodeCamp:
cd freeCodeCamp
-
Aggiungi un riferimento remoto al repository freeCodeCamp principale:
git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git
-
Assicurati che la configurazione sia corretta:
git remote -v
L'output dovrebbe apparire come sotto:
origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch) origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push) upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch) upstream https://github.com/freeCodeCamp/freeCodeCamp.git (push)
Eseguire freeCodeCamp localmente
Ora che si dispone di una copia locale di freeCodeCamp, è possibile seguire queste istruzioni per eseguirlo localmente. Questo vi permetterà di:
- Anteprima delle modifiche alle pagine come apparirebbero sulla piattaforma di apprendimento.
- Lavori su questioni e miglioramenti relativi all'interfaccia utente.
- Debug e correzione dei problemi con i server delle applicazioni e le app client.
Se si esegue un problema, prima di eseguire una ricerca web per il tuo problema e vedere se è già stato risposto. Se non riesce a trovare una soluzione, si prega di cercare la nostra GitHub problemi pagina per una soluzione e segnalare il problema se non è ancora stato segnalato.
E come sempre, sentiti libero di salire sul nostro Contributori Chat room su Gitter o il nostro server Discord, per domande rapide.
[!SUGGERIMENTO] Puoi saltare l'esecuzione di freeCodeCamp localmente se stai semplicemente modificando i file. Ad esempio, eseguendo un
rebase
o risolvendounioni
conflitti.Puoi sempre tornare a questa parte delle istruzioni più tardi. Dovresti solo saltare questo passaggio se non hai bisogno di eseguire le app sulla tua macchina.
Configurare le dipendenze
Passo 1: Impostare il file variabile di ambiente
Le chiavi API predefinite e le variabili di ambiente sono memorizzate nel file sample.env
. Questo file deve essere copiato in un nuovo file chiamato .env
a cui si accede dinamicamente durante la fase di installazione.
# Creare una copia del "sample.env" e nominarlo ".env".
# Popolare con le chiavi API e i segreti necessari:
# macOS / Linux
cp esempio. nv .env
# Windows
copy sample.env .env
Le chiavi nel file .env
non sono __ necessarie per essere modificate per eseguire l'applicazione localmente. Puoi lasciare i valori predefiniti copiati da sample.env
come-is.
[!SUGGERIMENTO] Tenete a mente se volete utilizzare servizi come Auth0 o Algolia, dovrai acquisire le tue chiavi API per questi servizi e modificare le voci di conseguenza nel
. nv
file.
Passo 2: Installa dipendenze
Questo passaggio installerà le dipendenze richieste per l'esecuzione dell'applicazione:
npm ci
Passo 3: Avvia MongoDB e semina il database
Prima di poter eseguire l'applicazione localmente, è necessario avviare il servizio MongoDB.
[!NOTA] A meno che non si abbia MongoDB in esecuzione in una configurazione diversa da quella predefinita, l'URL memorizzato come valore
MONGOHQ_URL
nel. nv
file dovrebbe funzionare bene. Se si utilizza una configurazione personalizzata, modificare questo valore come necessario.
Avviare il server MongoDB in un terminale separato:
-
Su macOS & Ubuntu:
mongod
-
Su Windows, è necessario specificare il percorso completo del binario
mongod
"C:\Program Files\MongoDB\Server\3.6\bin\mongod"
Assicurati di sostituire
3.6
con la versione che hai installato
[!SUGGERIMENTO] Puoi evitare di avviare MongoDB ogni volta installandolo come servizio in background. Puoi saperne di più su di esso nella loro documentazione per il tuo sistema operativo
Successivamente, cerchiamo di seminare il database. In questo passaggio, eseguiamo il comando sottostante che riempie il server MongoDB con alcuni set di dati iniziali richiesti dai servizi. Tra questi figurano alcuni schemi, tra le altre cose.
npm run seed
Passo 4: Avviare l'applicazione client freeCodeCamp e il server API
Ora è possibile avviare il server API e le applicazioni client.
npm run develop
Questo singolo comando attiverà tutti i servizi, compreso il server API e le applicazioni client disponibili su cui lavorare.
[!NOTA] Una volta pronto, apri un browser web e visita http://localhost:8000. Se l'app si carica, congratulazioni – sei tutto impostato! Ora hai una copia dell'intera piattaforma di apprendimento di freeCodeCamp in esecuzione sulla tua macchina locale.
[!TIP] Il server API serve le API su
http://localhost:3000
. L'app Gatsby serve l'applicazione client suhttp://localhost:8000
Se visiti http://localhost:3000/explorer dovresti vedere le API disponibili.
Accedi con un utente locale
La tua configurazione locale popola automaticamente un utente locale nel database. Facendo clic sul pulsante Accedi
ti autenticerà automaticamente nell'applicazione locale.
Tuttavia, accedere alla pagina del portafoglio utente è un po 'difficile. In fase di sviluppo, Gatsby si occupa di servire le pagine lato client e quindi si otterrà una pagina 404
per il portafoglio di utenti quando si lavora localmente.
Basta cliccare sul pulsante "Anteprima personalizzata 404 Page" ti inoltrerà alla pagina corretta.
Apportare modifiche a livello locale
Ora è possibile apportare modifiche ai file e inviare le modifiche al clone locale del fork.
Segui questi passaggi:
-
Convalida che sei nel ramo
master
:git status
Si dovrebbe ottenere un output come questo:
Sul branch master Il tuo branch è aggiornato con 'origin/master'. niente da commit, directory di lavoro pulita
Se non sei su master o la tua directory di lavoro non è pulita, risolvi qualsiasi file/commit e controlla
master
:git checkout master
-
Sincronizza le ultime modifiche dal ramo
master
di freeCodeCamp a monte del ramo principale locale:[!ATTENZIONE] Se hai una richiesta di pull in sospeso che hai fatto dal ramo
master
del tuo fork, li perderai alla fine di questo passaggio.Dovresti assicurarti che la tua pull request sia unita da un moderatore prima di eseguire questo passaggio. Per evitare questo scenario, dovresti sempre lavorare su un ramo diverso dal
master
.Questo passaggio sincronizzerà le ultime modifiche dal repository principale di freeCodeCamp. È importante che si rebase il ramo in cima all'ultimo
upstream/master
il più spesso possibile per evitare i conflitti in seguito.Aggiorna la tua copia locale del repository upstream freeCodeCamp:
git fetch upstream
Hard reset il ramo principale con il master freeCodeCamp:
git reset --hard upstream/master
Spingere il ramo principale alla tua origine per avere una cronologia pulita sul tuo bivio su GitHub:
git push origin master --force
Puoi convalidare il tuo master attuale corrisponde a upstream/master eseguendo una diff:
git diff upstream/master
L'output risultante dovrebbe essere vuoto.
-
Crea un nuovo ramo:
Lavorare su un ramo separato per ogni problema ti aiuta a mantenere pulita la tua copia di lavoro locale. Non dovresti mai lavorare sul
maestro
. Questo sarà terreno la tua copia di freeCodeCamp e potrebbe essere necessario ricominciare da capo con un nuovo clone o forchetta.Verificare di essere il
master
come spiegato in precedenza, e diramarsi da lì:git checkout -b fix/update-guide-for-xyz
Il nome del ramo dovrebbe iniziare con un
fix/
,feat/
,docs/
, ecc. Evitare di utilizzare i numeri di problema nei rami. Evitare di utilizzare i numeri di problema nei rami. Tienili brevi, significativi e unici.Alcuni esempi di buoni nomi dei rami sono:
fix/update-challenges-for-react fix/update-guide-for-html-css fix/platform-bug-sign-in-issues feat/add-guide-article-for-javascript translate/add-spanish-basic-html
-
Modifica le pagine e lavora sul codice nel tuo editor di testo preferito.
-
Una volta che sei soddisfatto delle modifiche, dovresti opzionalmente eseguire freeCodeCamp localmente per visualizzare in anteprima le modifiche.
-
Assicurati di correggere eventuali errori e controlla la formattazione delle modifiche.
-
Controlla e conferma i file che stai aggiornando:
git status
Questo dovrebbe mostrare un elenco di
file non preparati
che hai modificato.Su branch feat/documentation Il ramo è aggiornato con 'upstream/feat/documentation'. Modifiche non organizzate per commit: (usa "git add/rm <file>... per aggiornare ciò che sarà impegnato) (usa "git checkout -- <file>. ." per scartare le modifiche nella directory di lavoro) modificato: CONTRIBUTING. d modificato: docs/README.md modificato: docs/how-to-setup-freecodecamp-locally. d modificato: docs/how-to-work-on-guide-articles.md
...
8. Fase delle modifiche e commettere un impegno:
In questo passaggio, dovresti contrassegnare solo i file che hai modificato o aggiunto te stesso. È possibile eseguire un reset e risolvere i file che non avete intenzione di modificare, se necessario.
```console
git add path/to/my/changed/file.ext
Oppure puoi aggiungere tutti i file non preparati
all'area di stadio:
git add .
Solo i file che sono stati spostati nell'area di staging verranno aggiunti quando si effettua un commit.
git status
Uscita:
Su branch feat/documentation
Il ramo è aggiornato con 'upstream/feat/documentation'.
Modifiche da inviare:
(usa "git reset HEAD <file>..." to unstage)
modified: CONTRIBUTING.md
modified: docs/README.md
modified: docs/how-to-setup-freecodecamp-locally.md
modified: docs/how-to-work-on-guide-articles.md
Ora, è possibile eseguire il commit delle modifiche con un breve messaggio come questo:
git commit -m "fix: my short commit message"
Alcuni esempi:
correzione: aggiornamento articolo guida per Java - per ciclo
caratteristica: aggiungi articolo guida per le abilità alexa
Facoltativo:
Consigliamo vivamente di inviare un messaggio di commit convenzionale. Questa è una buona pratica che vedrete su alcuni dei popolari repository Open Source. Come sviluppatore, questo ti incoraggia a seguire le pratiche standard.
Alcuni esempi di messaggi di commit convenzionali sono:
correzione: aggiorna l'articolo guida HTML
correzione: aggiorna gli script di build per Travis-CI
funzione: aggiungi l'articolo per JavaScript hoisting
docs: aggiorna le linee guida per contribuire
Mantieni questi brevi, non più di 50 caratteri. È sempre possibile aggiungere ulteriori informazioni nella descrizione del messaggio di commit.
Questo non richiede tempo aggiuntivo rispetto a un messaggio non convenzionale come 'file di aggiornamento' o 'add index.md'
Puoi saperne di più sul perché dovresti usare i commit convenzionali qui.
-
Se ti rendi conto che è necessario modificare un file o aggiornare il messaggio di commit dopo aver fatto un commit puoi farlo dopo aver modificato i file con:
git commit --amend
Questo aprirà un editor di testo predefinito come
nano
ovi
dove è possibile modificare il titolo del messaggio di commit e aggiungere/modificare la descrizione. -
Successivamente, è possibile inviare le modifiche al fork:
git push origin branch/name-here
Proporre una richiesta Pull (PR)
Dopo aver effettuato le modifiche, controlla qui per come aprire una richiesta Pull.
Riferimento comandi rapidi
Un rapido riferimento ai comandi di cui avrai bisogno quando lavorerai localmente.
comando | descrizione |
---|---|
npm ci |
Installa / reinstalla tutte le dipendenze e avvia i diversi servizi. |
npm run seed |
Analizza tutti i file di markdown della sfida e li inserisce in MongoDB. |
npm run develop |
Avvia il server API freeCodeCamp e le applicazioni client. |
npm test |
Eseguire tutti i test JS nel sistema, inclusi i test client, server, lint e challenge . |
npm run test:client |
Eseguire la suite di test client. |
npm run test:curriculum |
Eseguire la suite di test curriculum. |
npm run test:curriculum --block='Basic HTML e HTML5' |
Prova un Blocco specifico. |
npm run test:curriculum --superblock='responsive-web-design' |
Prova un SuperBlock specifico. |
npm run test-curriculum-full-output |
Eseguire il curriculum test suite, senza bailing dopo il primo errore |
npm run test:server |
Eseguire la suite di test del server. |
npm run e2e |
Eseguire il Cypress end per terminare i test. |
npm run clean |
Disinstalla tutte le dipendenze e pulisce le cache. |
Risoluzione Dei Problemi
Problemi con l'installazione dei prerequisiti raccomandati
Sviluppiamo regolarmente sui più recenti o più popolari sistemi operativi come macOS 10.15 o successivi, Ubuntu 18.04 o più tardi e Windows 10 (con WSL2).
Si consiglia di ricercare il vostro problema specifico su risorse come Google, Stack Overflow e Stack Exchange. C'è una buona probabilità che qualcuno abbia affrontato lo stesso problema e c'è già una risposta alla tua domanda specifica.
Se si è su un sistema operativo diverso e/o si stanno ancora eseguendo problemi, vedere ottenere aiuto.
[!ATTENZIONE]
Si prega di evitare di creare problemi GitHub per i problemi prerequisiti. Sono al di fuori del campo di applicazione di questo progetto.
Problemi con l'UI, i Caratteri, gli errori di compilazione ecc.
Se si verificano problemi con l'interfaccia utente, i caratteri o vedere gli errori di compilazione una pulizia può essere utile:
npm run clean
npm ci
npm run seed
npm run develop
O
Usa il collegamento
npm run clean-and-develop
Se continui ad affrontare problemi con la costruzione, si consiglia di ripulire lo spazio di lavoro.
Usa git clean
in modalità interativa:
git clean -ifdX
Problemi con le API, l'accesso, le presentazioni della sfida, ecc.
Se non riesci ad accedere e invece vedi un banner con un messaggio di errore che verrà segnalato a freeCodeCamp, si prega di controllare che la porta locale 3000
non sia in uso da un programma diverso.
Su Linux / macOS / WSL su Windows - Dal terminale:
netstat -ab <unk> grep "3000"
tcp4 0 0 0.0.0.0:3000 DESKTOP LISTEN
Su Windows - Da Elevated PowerShell:
netstat -ab <unk> Select-String "3000"
TCP 0.0.0:3000 DESKTOP LISTENING
Problemi nell'installazione delle dipendenze
Se si ottengono errori durante l'installazione delle dipendenze, assicurati di non essere in una rete ristretta o le impostazioni del firewall non ti impediscono di accedere alle risorse.
La prima configurazione può richiedere un po' di tempo a seconda della larghezza di banda di rete. Sii paziente, e se sei ancora bloccato abbiamo raccomandato di utilizzare GitPod invece di una configurazione offline.
Ottenere Aiuto
Se sei bloccato e hai bisogno di aiuto, fatecelo sapere chiedendo nella categoria 'Contributori' sul nostro forum o la stanza di chat dei contributori su Gitter.
Potrebbe esserci un errore nella console del browser o in Bash / Terminal / Linea di comando che aiuterà a identificare il problema. Fornire questo messaggio di errore nella descrizione del problema in modo che gli altri possano identificare più facilmente il problema e aiutarvi a trovare una risoluzione.