7 berichten aan het bekijken - 1 tot 7 (van in totaal 7)
  • Q:

    Bijdrager
    Shmoo

    Terminal – npm Lighthouse – foetsie

    .

     

    Op mijn MacBook Pro heb ik nergens last van maar op de Mac mini doen we net alsof de Lighthouse module niet bestaat.

    Beide machines zijn hetzelfde ingesteld.

     

    Ik word hier zo ontzettend ZIEK van. Als ik nu: npm install -g lighthouse doe dan kan ik het programmaatje even gebruiken. Sluit ik Terminal af of herstart ik de computer en dan bestaat het allemaal niet meer. Elke keer wanneer ik dit stukje software wil gebruiken moet ik het als het ware opnieuw installeren over de oude installatie heen.

     

    Juist na dit gedaan te hebben omdat ik andere helemaal niets kan installeren.

    https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

     


    Bijdrager
    feek

    Niet dat ik enig verstand van heb, maar mogelijk staat npm-global niet in je $PATH.

    Vergelijk echo $PATH eens na installatie en een keer na opstarten.

    Vergelijk ook $PATH eens met je MBP.

    Wat ook eens zou kunnen helpen is het commando npm install -g lighthouse met sudo uit te voeren. Dan is het een rechten probleem.

    NOGMAALS: ik doe een gooi en heb er geen verstand van!


    Bijdrager
    Shmoo

    Dat lijkt idd. het probleem te zijn.

     

     

    Waarom $PATH niet onthouden blijft is een raadsel.

     

    Volgens het internet moet je niet zomaar  sudo  overal voor gebruiken. Het blijkt gewoon een rechtenkwestie te zijn en dat kun je simpel oplossen (lijkt mij ook de mooiste manier) om de npm modules op gebruikersniveau te plaatsten ipv systeem niveau. Prima toch.

    Dan gaan we dat gewoon even uitvoeren.

    Klinkt allemaal heel verstandig en logisch maar waarom mijn $PATH niet onthouden blijft?

     


    Bijdrager
    feek

    Je hebt dus geen sudo nodig! Maar moet npm wel toevoegen in je $PATH

    Eenmaal export PATH update voor je huidige terminal sessie jouw $PATH.

    Dat houdt in dat als je terminal afsluit en weer opent, je path weer terug bij ‘af’ is.

    Wat je wilt is dat als je een terminal sessie opent, alles opnieuw wordt ingesteld. Dit soort dingen regel je in .bashrc on .bash_profile bestanden in de root van je Mac ~-folder.

    Alles wat je daar zet, zal bij elke sessie worden ingesteld. Leuke dingen als “Welcome Shmoo, an other day in terminal”.

    Zoek maar eens op voorbeelden van leuke .bashrc files, met tweaks voor je cursor e.d. en Shmoo is weer een hele zondag avond bezet:)


    Bijdrager
    feek

    Bijdrager
    Shmoo

    Ik ben eindelijk zover…

     

    .

     

    Gewoon via Spotlight Alfred de handel automatiseren door te typen:  lighthouse  {url}  {bestandsnaam}

     


    Bijdrager
    iep

    <p class=”cite”>Shmoo op 26 mei 2019 om 19:48</p>
    Waarom $PATH niet onthouden blijft is een raadsel.

    Dat is geen raadsel, dat is hoe de shell werkt, niet alleen in macOS maar op iedere UNIX/Linux machine. Wat je doet geldt namelijk alleen binnen de sessie zelf. Als je een nieuwe tab of venster van je shell opent zul je ook zien dat daar je $PATH niet meer naar je lighthouse zal leiden. Dat is superhandig omdat je op deze manier handig environment variables (zoals iets als $PATH officieel heet) kunt testen. Gaat er iets mis dan start je gewoon een nieuwe shell en je kunt weer opnieuw beginnen.

     

    Als je een permanente wijziging aan je $PATH of andere environment variable wil maken zul je dit vast moeten zetten zoals feek al aangeeft. Welke je moet hebben ligt aan welke shell je gebruikt (bash, zsh, csh, etc.) en of je dit voor interactieve en non-interactieve shells wil hebben. Standaard zul je op macOS de bash shell gebruiken en is het voldoende om het in .bashrc te stoppen.

     

    In /etc vindt je de standaard .bashrc en .profile die voor iedere user op je Mac zal gelden. Wanneer je je eigen aanmaakt in je homedir dan zal deze die algemene overschrijven. Zet je daar alleen je $PATH in dan wordt alleen die $PATH overschreven.

     

    Een ander belangrijk punt om je te realiseren: dit is iets wat alleen werkt op de shell. Zodra je een GUI programma hebt die hier ook gebruik van moet maken dan wordt het enorm lastig. Deze kunnen niet zomaar die shell dingen gebruiken. Vaak wel wanneer je ze vanuit de shell start. Er hebben wat mensen geprobeerd om dit via launchd te regelen maar dat werkt niet.

     

    Sudo kun je hier overigens prima gebruiken, dat gaat namelijk uit van je eigen profiel en niet die van de root user (dat is wat je met su wel hebt).

     

    Die commandlinepoweruser site is een leuke maar zou ik even links laten liggen gezien ze daar zsh gebruiken ipv bash. Als je niet zo bekend bent met de shell is dat een beetje een brug te ver nog. Veel zaken op internet gaan namelijk van bash uit. En ja, er zit een behoorlijk verschil tussen bash en zsh qua mogelijkheden maar ook hoe het bijv. omgaat met speciale tekens en hoe je de history opvraagt.

7 berichten aan het bekijken - 1 tot 7 (van in totaal 7)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.