npm – afhankelijkheden voor een pakket in een andere map installeren?

Ik heb de volgende mappenstructuur:

/some_project
    source.js
    package.json

Ik wil graag de afhankelijkheden voor some_project installeren.
Ik weet dat ik in een of ander project kan cd’en en dan npm install

. kan uitvoeren

Maar ik vroeg me af of het mogelijk is zonder de directory te wijzigen?
Iets als

npm install some_project/package.json 

Antwoord 1, autoriteit 100%

U kunt de variant npm install <folder>gebruiken met de optie --prefix. In uw scenario zullen de map en het voorvoegsel hetzelfde zijn:

npm --prefix ./some_project install ./some_project

Antwoord 2, autoriteit 12%

Update:aangezien de optie --prefixbestaat, stem ik nu voor @coudy’s antwoord op deze vraag. Origineel antwoord hieronder:

Nee, npmwordt altijd geïnstalleerd in de huidige map of, met -g, in de systeembrede node_modules. Je kunt dit echter een beetje bereiken met een subshell, die geen invloed heeft op je huidige map:

(cd some_project && npm install)

De haakjes zorgen ervoor dat het wordt uitgevoerd in een subshell.


Antwoord 3

Op Windows 10 was het gebruik van powershell het enige dat voor mij werkte zonder alle problemen en randgevallen die worden genoemd in dit blogberichtwas dit

Start-Process -Wait -FilePath "npm" -ArgumentList "install" -WorkingDirectory $web_dir

Antwoord 4

Op Windows 10 kreeg ik --prefixniet werkend, dus moest ik cden het uitvoeren.

cd PATH_TO_FOLDER && npm install 

Antwoord 5

Maak een package.json in de hoofdmap met de volgende inhoud:

{
    "dependencies": {
        "helloworldprojectname": "file:hello\\world"
    }
}

Noem dit dan om te installeren:

npm install --prefix ./hello/world

Het installeert ./hello/world/node_modulesmet behulp van ./hello/world/package.json.

(Windows 10, Node v10.16.0, npm 7.6.1)

Other episodes