I have a private package on the file system that I'm trying to install in an Angular 8 project. So far with non-angular projects, this has worked fine. From the root of the Angular project I do:
npm i -S ../the-other-project-dependency/dist
The error message is:
npm ERR! Could not install from "../the-other-project-dependency/the-other-project-dependency" as it does not contain a package.json file.
The part of this that is true is that the-other-project-dependency
does not contain a package.json
file.
The package.json
file is in ../the-other-project-dependency/dist
. Specifically, it is in the dist
directory.
So I'm not sure if NPM is saying that the dist
directory should be named the-other-project-dependency
?
I tried renaming dist
to the-other-project-dependency
and now it gets passed that error, but it gives an error for another private project dependency:
Specifically it says:
`the-other-project-dependency/yet-another-private-dependency` could not be installed as it does not contain a `package.json` file.
So it looks as if NPM does not understand how to work with locally installed packages. In this last case it seems as if it's saying the yet-another-private-package-dependency
should be laid out as a sibling of the-other-project-dependency
and it's not reading the file system path to that dependency.
I assumed per this post that using local file deps should just work.
Update
I think it's a bug in NPM. I filed a report here
Resolution
Was able to get it working using yarn, but I had to remove the local private packages and reinstall them with yarn, as yarn uses a slightly different path string for local dependencies.