javascript - Installera ett privat paket i ett Angular 8-projekt


Jag har ett privat paket på filsystemet som jag försöker installera i ett Angular 8-projekt. Hittills har detta fungerat bra med icke-Angular-projekt. Från roten av Angular-projektet gör jag:

npm i -S ../the-other-project-dependency/dist

Felmeddelandet är:

npm ERR! Could not install from "../the-other-project-dependency/the-other-project-dependency" as it does not contain a package.json file.

Den del av detta som är sant är att the-other-project-dependency inte innehåller en package.json-fil.

Filen package.json finns i ../the-other-project-dependency/dist. Specifikt finns den i dist-katalogen.

Så jag är inte säker på om NPM säger att dist-katalogen ska heta the-other-project-dependency?

Jag försökte byta namn på dist till the-other-project-dependency och nu går det förbi det felet, men det ger ett fel för en annan privat projektberoende:

Specifikt står det:

`the-other-project-dependency/yet-another-private-dependency` could not be installed as it does not contain a `package.json` file.  

Så det ser ut som att NPM inte förstår hur man arbetar med lokalt installerade paket. I det här sista fallet verkar det som om det säger att yet-another-private-package-dependency ska placeras som en syskon till the-other-project-dependency och det läser inte filsystemvägen till det beroendet.

Jag antog baserat på detta inlägg att användning av lokala filberoenden bara borde fungera.

Uppdatera

Jag tror att det är ett fel i NPM. Jag har lämnat in en rapport här

Upplösning

Jag kunde få det att fungera med hjälp av yarn, men jag var tvungen att ta bort de lokala privata paketen och installera dem igen med yarn, eftersom yarn använder en något annorlunda sökväg för lokala beroenden.