Oefening CLI Setup &installeer JavaScript lokaal:mogelijke fouten op een Mac

Wanneer u aan Oefeningsoefeningen werkt, kunt u de problemen oplossen met behulp van de online-editor of er lokaal aan werken in uw eigen favoriete IDE en ze indienen via de CLI (Command Line Interface) op de terminal. Tijdens het lokaal installeren van Exercism op mijn MacOS, ben ik verschillende fouten tegengekomen die me enige tijd kostte om ze te achterhalen.

Mogelijk bent u de volgende fouten niet tegengekomen als Homebrew of Node nog niet is geïnstalleerd.

Zoals gevonden, zijn hier de oorzaken van de fouten die ik tegenkwam:

  1. Verouderde Homebrew-versie
  2. Verouderde knooppuntversie

Ik ga in het algemeen door mijn foutopsporingsproces lopen - hoe ik het probleem heb gevonden en hoe ik onderzoek heb gedaan om erachter te komen.

Als u zich comfortabel voelt bij het installeren van exercism via Homebrew, geeft Exercism u de volgende 2 stappen:

Stap 1:installeer oefening via Homebrew

brew update  
brew install exercism 

exercism version --> this is only used for checking the exercism version

Stap 2:De CLI configureren in de terminal

exercism configure --token=[THIS IS THE SECRET TOKEN THAT CANNOT BE SHARED]

Zodra dit is voltooid, hebt u Exercism lokaal geïnstalleerd.

Verouderde Homebrew-versie

Aanvankelijk kreeg ik een foutmelding bij het uitvoeren van brew update :

Error: 
 homebrew-core is a shallow clone.

Ik wist niet wat er aan de hand was totdat ik de Homebrew-versie controleerde met brew --version , toen vond ik de volgende fout:

unknown or unsupported macOS version: :dunno (MacOSVersionError)

Ik deed wat Google-zoekopdrachten en ontdekte dat deze stapeloverloopvraag met betrekking tot Homebrew mislukte op een macOS-versie. Zoals opgemerkt in een van de antwoorden met de meeste stemmen, kunt u als volgt de Homebrew-versie bijwerken:

brew update-reset

Het zou even duren om te resetten. Nadat het is gereset, kunt u de versie opnieuw controleren met brew --version . U zou deze keer de huidige versie van de Homebrew moeten zien in plaats van een foutenlogboek.

Verouderde knooppuntversie

Hoewel ik de Homebrew-versie heb gereset/geüpdatet, toen ik brew update . uitvoerde nogmaals, ik zag nog steeds dezelfde fout:

Error: 
 homebrew-core is a shallow clone.

Ik wist niet waarom. Ik besloot om eerst oefening te installeren en te configureren en de fout te negeren. Tot toen ik npm install deed , Ik kreeg veel waarschuwingen over verschillende npm-pakketten die verouderd of verouderd zijn. Ik kreeg ook een foutmelding bij het uitvoeren van npm test :

SyntaxError: Unexpected token

Na verschillende pogingen en fouten om te zien of ik een npm-installatie kon doen voor elk ouder npm-pakket, realiseerde ik me dat dit een tijdrovende en ineffectieve methode was. Het heeft me niet echt geholpen om de werkelijke oorzaak van het probleem te weten.

Ik besloot het aan mijn vriend Google te vragen en ik vond deze stack-overflow-vraag. Een van de antwoorden vertelt me ​​eigenlijk dat de mogelijke oorzaak van het probleem een ​​verouderde Node-versie kan zijn .

Met behulp van node --version om de huidige versie te achterhalen waar ik op zat.

Gebruik vervolgens nvm install [NEW NODE VERSION] om de nieuwste versie te installeren.

(de versie die ik heb in het onderstaande codefragment is alleen de nieuwste op het moment dat ik dit bericht schrijf, om de meest recente Node-versie te controleren, klik hier )

nvm install 16.13.1

Zodra deze stappen zijn voltooid, gefeliciteerd!! Je zou met succes npm install . moeten kunnen doen en npm test deze keer zonder meer fouten!!

Bedankt voor het lezen en hopelijk kan het je helpen als je soortgelijke problemen tegenkomt als ik.

Hieronder vindt u enkele aanvullende bronnen voor het geval u ze misschien nuttig vindt:

  • Wat is Homebrew en hoe te installeren
  • Node.js updaten
  • Hoe JavaScript lokaal te installeren voor Oefeningen

Veel plezier, lokaal oefenen!

Trouwens, als je ooit de volgende fout ziet bij het doen van npm test , is het mogelijk dat u geen npm install . heeft alle pakketten voor de oefening.

> test
> jest ./*

sh: jest: command not found