Cannot install NPM package globally via Github branch - node.js

The problem is that if I use a command like so:
npm install -g github:user/repo#branch_x
It will not install the latest package represented by that branch_x. I currently am guessing that it just uses the master branch. But I would like to install based off of a branch other than master.
I just opened this issue with NPM
https://github.com/npm/npm/issues/17623
Has anyone seen the same issue? Anyone know a workaround?

Related

how to update npm package, no new version

I'm maintaining a npm package for which I received a GitHub dependabot security alert for one of it's dependencies. I accepted the gh bot proposal which ended up in a gh pull request with an updated package-lock.json. I checked out the pr branch locally and run my tests against it. It is all ok and I want to merge it into master. But how do I publish the new package, do I have to create a new version or is it best practice to crate a new npm version? Because nothing else changed (only one dependency) can I just update the package without creating a new version? Thanks for your thoughts.
I read the npm documentation, but couldn't find any solution.
Well, I think you can try this in your terminal and will update the npm version. I think this would be helpful.
https://docs.npmjs.com/cli/v6/commands/npm-version
commands: this will update to the latest version.
npm install npm#latest -g

How to update my Project with my new NPM version?

How are you all?
I'm really new at this. I'm having trouble deploying my react project. When I do it, the entire website is blank. Someone said to me that I should update my Node and my NPM. That leads me to the first question: "When I update the NPM, I'm updating Node at the same time, right?"
So I researched and found this command:
npm cache clean -f
sudo npm install -g n stable
And I think that updated my NPM.
Done that, I ran the GIT STATUS to see if something were modified in my project. Nothing.
But that leads me to my second question: "Cool... but now I have to update my project with my new NPM version, right?"
I tried:
NPM UPDATE
But then i checked my git status again and nothing was modified. How can I update it?
Thanks guys. I really hope I did this right.
First of all, you have to understand npm & node is the environment to run the projects on your computer (local). It's global and not belong to any project. So if you install or update global, it won't affect your project (specific on your working copy git) because it's the global, and only is the environment to run, you can check dependencies on your package.json file.
If you wanna update node to latest:
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
update npm to latest version: npm install npm#latest -g

How do I prevent npm install from removing packages?

I'm trying to set up a development environment with several packages, and as a result I need to manually install some dependencies. More specifically, I have some local changes in several packages which I need to test before I can push them to github, so I can't just npm install the top level because it won't pick up those change. So I run the first npm install manually on packages which are missing, and then try to run my node code and see which package it is still missing, then try to npm install what it says is missing.
However, when I go to install the second package, it ends up with this message:
added 3 packages from 4 contributors, removed 799 packages and audited 3 packages in 4.197s
The second install removed practically every package that was already installed! I didn't notice this until about the third time, when I realized that I seemed to be installing the same thing over and over.
However can I prevent this particularly naughty behavior and force npm to only install what I tell it to and leave everything else alone?
Have a look at npm link if you need to test against modified packages.
From npm link:
This is handy for installing your own stuff, so that you can work on it and test it iteratively without having to continually rebuild.
Say b is a dependency of a. You made changes to b and want to check if a still works with those changes. Instead of using b in node_modules installed from npm, use your local, modified version:
cd ~/projects/b # go into the package directory
npm link # creates global link
cd ~/projects/a # go into some other package directory.
npm link b # link-install the package
Now, any changes to ~/projects/b will be reflected in ~/projects/a/node_modules/b/.
If your development flow involves updating in parallel packages which depend on one another, you might consider switching your project's package manager to from npm to yarn to take advantage of yarn's workspaces feature.
Yarns's workspaces allow you to easily setup a single monorepo containing all your interconnected dependencies, and let yarn thinking how to link them together in your dev environment.
i had a similar problem today , & thought this might help someone in the future and l have found out that if you install simultaneouly it
npm install --save package1 package2 package3 ...
it worked as l had
npm install xlsx angular-oauth2-oidc
but if you install separately it will have issues
Edit 2 More infor by #Michael
installing multiple packages in the same command also prevents hooks from being installed multiple times
Remove "package-lock.json" file befor installing the new package.
Are you saving the dependencies to package.json?
To Save : npm install --save {package_name}. This will save the package to package.json and install using npm install.
You can't particularly control the dependencies(fully). The dependencies which you have installed might be using dependencies themselves.So when you remove a package, npm deletes all the package's dependencies and the package.

NPM package has outdated dependency, is there a way to alter its version?

Just migrated to Node 4.1.2 from 0.10. One of the packages being installed via npm install errors due to node-gyp having a problem with one of its dependencies, it's quite a few versions out of date. The issue has been brought up on the repo but hasn't seen activity since May. Is there a way to tell NPM to install this package but with the outdated dependency using a newer version?
EDIT:
I've copied over an installed version from node_modules in an older project. npm install -g npm-check-updates then ncu in the node_modules/bs-html-injector/ directory. It lists updates, ncu -u will update the package.json, npm install after. I run my gulp task and html is injecting fine, all seems fine :) Would still like to know how to do this if I didn't have a local copy installed by NPM. It looks like it's just a 1:1 copy from the github repo?
With npm, you can install packages from GitHub directly:
npm install user/repo#branch
You can fork the package on GitHub, make and propose the changes you need and use your fork as a dependency in your project until PR is merged.
you can use --force to force install it

running npm install unbuilds global npm

I have a project that depends on nodegit.
When I run
npm install -g .
I get this output at some point:
When npm finishes installing, I lose access to it in the path:
I end up having to run 'n', to change to a previous version of node, then run 'n' again to change to the latest version of node and in the end run 'npm install -g npm#latest' to get the latest version of npm.
It looks like you are trying to install NodeGit. (Or maybe you are installing something that depends on NodeGit?) Assuming you are installing NodeGit, that is not a CLI tool and should not be installed globally. It installs npm as a dependency. Your installation is failing for whatever reason, and as part of cleanup, it is uninstalling npm.
If you are installing NodeGit, do not install it with -g.
If you are trying to install something that isn't NodeGit, you need to either change directories to that project folder or (more likely) change your installation command line.
If you are installing something that depends on NodeGit and really should be installed globally, you'll need to identify why your installation is failing (which it appears to be failing at the pruning of dev dependencies, but I can't tell why from the output--might be file permissions, might be something else). As long as NodeGit installation fails, it will unbuild npm.
This is actually an issue with the nodegit project.
You can follow it in https://github.com/nodegit/nodegit/issues/561 which led to https://github.com/nodegit/nodegit/issues/567
Nothing i can do but wait.

Resources