I have a custom npm module that I am working on, and it has a GitHub repo. I'm also working on a project that uses the custom module. When working on the larger project, it is nice to use npm link
so I can make changes to the module and see them right away in the main project.
To deploy to staging or production, I use shrinkwrap and shrinkpack so I can do an Edit: I'm crossing this out as the answer below technically solves my issue, even though it doesn't solve for this particular point, but that wasn't as important as the rest of it.npm install
after every deploy (some of the dependencies need binaries, and dev systems aren't the same as production systems, so they do need to be installed and not just kept in source control).
Of course, since the module is linked to my main project and not listed in package.json
, a deploy and install misses it entirely. I can go ahead and list it in package.json
and have it point to the appropriate GitHub repo, but then every time I need to test a change in the main project I would have to commit and push those changes, then update the main project, kill and restart the app...that would get tiresome pretty quickly.
I guess I need something like the opposite of "devDependencies"; something where I can have it not install the module on dev, but do install it from GitHub when doing npm install
on staging or production. Other than remembering to manually change package.json
every time I need to go back and forth, is there a better way to do this?
npm link
and thennpm install
the linked folder is removed and replaced with the published-package. I even tried incrementing the locally linked version and then trying install but it still removed/replaced thenpm link
which was effectively [email protected] (linked, in dev) with [email protected] (published) with package.json having a semver string of lib: "^0.0.1". This is a real problem for me any pointers would be very much appreciated. – Ambidextrous