Hvordan fikser jeg bash npm ikke funnet?

Hvordan fikser jeg bash npm ikke funnet?
Hvis du jobber med JavaScript og Node.JS, du er allerede kjent med NPM. Begrepet npm refererer til to ting. Mer om den offisielle noden.JS -dokumentasjon.
  • Et online depot for publisering av open source-node.JS -prosjekter.
  • En kommandolinjeverktøy for å administrere node.JS -pakker, administrerer versjoner og avhengigheter.

Hver gang du installerer node.JS, den installerer npm Pakkesjef som standard. Av en eller annen grunn kan du imidlertid møte problemet med at Bash ikke anerkjenner NPM som en gyldig kommando.

I denne feilsøkingsguiden vil vi se på mulige trinn du kan ta for å feilsøke feilen. Jeg bruker Ubuntu til demonstrasjonen. Imidlertid vil de viktigste prinsippene gjelde for alle andre Linux -distro.

BASH: NPM: Kommando ikke funnet

Bash er standardskallet på de fleste Linux -distros. Når vi kjører en kommando på terminalen, går den til bash. Kommandoen blir deretter tolket og utført.

Imidlertid, hvis kommandoen leter etter et verktøy som Bash ikke gjenkjenner, vil den vise feilen.

Som utdataene antyder, kan Bash ikke finne kommandoen "npm" relatert til et hvilket som helst bash alias eller verktøy. Vi kan utlede et par mulige scenarier:

  • NPM er ikke installert.
  • JS er ikke installert.
  • Verdien av banen (eller beslektet miljøvariabel) endret.
  • PROBISJONSPROBLEMER.
  • En gammel versjon av noden.JS ble installert.

Fersk node.JS -installasjon

Vår aller første løsning innebærer å installere node på nytt.JS og alle komponentene fra bunnen av. En ødelagt installasjon eller konfigurasjon kan forårsake et slikt problem i mange tilfeller. Vi fjerner den eksisterende installasjonen, konfigurerer noden.JS dedikert repo, og lag en fersk node.JS -installasjon.

Fjerne eldre versjoner av noden.JS
Hvis du har en gammel versjon av noden.JS installert, så anbefales det sterkt å oppgradere til den nyeste stallen (nåværende eller LTS) utgivelsen. Gammel programvare er ofte full av feil og sårbarheter. En stor del av cyberangrep skjer fordi gammel programvare ikke er oppdatert/lappet.

Først fjerner noden.JS ved å bruke din standardpakkebehandler. For Ubuntu er Apt Package Manager. Kjør følgende kommando for å fjerne node.JS og alle komponentene:

$ sudo apt autoremove -purge nodejs npm node

Kjør deretter følgende kommandoer for å fjerne rester fra systemet.

$ sudo rm -rf/usr/local/bin/npm
$ sudo rm -rf/usr/local/share/man/man1/node*
$ sudo rm -rf/usr/local/lib/dtrace/node.d
$ sudo rm -rf ~/.npm
$ sudo rm -rf ~/.Node-gyp
$ sudo rm -rf/opt/local/bin/node
$ sudo rm -rf opt/local/include/node
$ sudo rm -rf/opt/local/lib/node_modules
$ sudo rm -rf/usr/local/lib/node*
$ sudo rm -rf/usr/local/include/node*
$ sudo rm -rf/usr/local/bin/node*

Installere den siste noden.JS
Vårt primære mål er å bekrefte at systemet ditt har den siste versjonen av Node.JS installert. Vi har allerede en dyptgående guide til å installere node.JS og NPM på Ubuntu.

Kort sagt, kjør følgende kommandoer for å angi den offisielle noden.JS Repo for Ubuntu. Når du skriver denne artikkelen, den siste nåværende Versjonen er node.JS v17.x, og den siste LTS -versjonen er v16.x. Per anbefaling av noden.JS offisiell nettsted, vi installerer LTS -versjonen:

$ curl -fssl https: // Deb.Nodesource.com/setup_16.x | sudo -e bash -

Nå, installer node.JS:

$ sudo apt installer nodejs -y

Kontroller nå om bash nå gjenkjenner NPM som en riktig kommando.

$ npm hjelp

Hvis prosessen er vellykket, får du NPM -hjelpesiden. Ellers vil problemet vedvare.

Tilbakestill verdien av banen

Bane er en viktig miljøvariabel som mange deler av systemet er avhengige av. Den forteller skallet (og systemet) hvor du skal se etter visse programmer. Hver gang vi kjører en kommando, søker skallet (bash, i de fleste tilfeller) etter kommandoen på stedene beskrevet av banen. Hvis den ikke er funnet, vil den ikke gjenkjenne kommandoen, selv om verktøyet er installert riktig.

For å lære mer om banevariabelen, sjekk ut denne guiden om hvordan du endrer banen i Linux.

For å se verdien av banevariabelen, kjør følgende kommando:

$ ekko $ bane

Alternativt kan du bruke følgende SED -kommando til å skrive ut baneutgangen. Det vil sette alle unike oppføringer i en ny linje.

$ sed 's/:/\ n/g' <<< "$PATH"

Er det noen inkonsekvens i banen variabel? Det vil være flere stier som er oppført i banevariabelen i de fleste tilfeller. Prøv å sette banevariabelen til standardtilstanden.

$ Eksportbane = $ (GetConf Path)

Etter å ha fikset banevariabelen, sjekk om bash kan finne npm nå.

$ npm hjelp

Hvis det løste problemet, kan du vurdere å sette banevariabelen manuelt ved å bruke Bashrc -filen. Lær mer om eksportsti i Bashrc. Kort sagt, legg til følgende linjer i Bashrc -filen.

$ Eksportbane = $ (GetConf Path)
$ Eksportbane: $ sti:/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin

Her,

  • Den første linjen setter verdien av banen til standarden.
  • Den andre linjen legger til noen flere lokasjoner for å se etter binærfiler. Det er valgfritt, men anbefalt for de fleste distros.

Bekreft om oppdateringen var vellykket.

$ ekko $ bane

Hvis du bruker en bærbar versjon av Node.JS, du må også sørge for at den binære plasseringen også er inkludert i banen variabel. Ellers vil Bash ikke gjenkjenne det binære.

Siste tanker

Denne feilsøkingsguiden demonstrerte noen løsninger for å løse problemet der Bash ikke kan finne npm binær. Merk at disse trinnene er for generell feilsøking. Hvis problemet ditt vedvarer etter å ha fulgt dem, bør du søke eksperthjelp. Det er massive samfunn som Stackexchange som kan hjelpe deg med din situasjon.

Glad databehandling!