Installing npm private package gives back 404/405 - "is not in the npm registry" - node.js

npm ERR! code E404
npm ERR! 404 Not Found - GET http://registry.npmjs.org/#office%2fintegration-sdk - Not found
npm ERR! 404
npm ERR! 404 '#office/integration-sdk#*' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
We have private bitbucket repo, with package code, that we want to make npm private package out of it.
I've managed to publish it thru CLI with npm publish, and with the bitbucket pipeline.
And it can be installed fine, as long as i am logged in with npm login.
But we want to be able to install it without logging to npm(when deployed etc..), and i thought NPM_TOKEN is there for those reasons.
I've tried buncha stuff in .npmrc file, mostly like:
#office:registry=https://registry.npmjs.org/:_authToken=<'read/publish token from npm'>
Steps:
npm publish
check npm - package looks good, updated, etc..
run install command - npm i #office/integration-sdk
Fails with either 404(most of the time), and with 405 Method not Allowed when i have #office:registry=https://registry.npmjs.org/#office.
One thing that might be causing this.. We only have user account on npm i guess, it is Pro account with private packages thing. But we didn't create organization. Could that be a problem, i mean it can be published, and installed when logged in, and also public packages can be installed just fine when not logged in.

Related

NPM getting 404 on installing packages

I'm trying to install packages for an angular project based on a template of the customer.
He has provided me this let's say ready to use template, but when I run npm install I get errors.
npm ERR! code E404
npm ERR! 404 Not Found - GET https://artifactory.springlab.enel.com/artifactory/api/npm/npm-public/#angular-devkit%2fbuild-angular
npm ERR! 404
npm ERR! 404 '#angular-devkit/build-angular#~0.1102.19' is not in this registry.
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git URL.
As you can see the issue is on a GET from a server of theirs. I have highlighted this issue but they said that is not their fault as they can run npm install without any issue.
Please note that:
When I run the npm install I'm logged in inside their VPN to access the servers.
I've tried several versions of node and npm, using the same version that is working on their machines.
I've tried both --force and --legacy-peer-deps and I always get the same error.
I have no issues on npm in any of the other 10s projects I work on (for other customers)
I have also disabled the antivirus.
IT support from the company is not providing me with help, so I'm alone and I don't know what to check.
How can I get more details on why I got a 404 on that?

npm publish to registry.npmjs.org fails in GitLab CI

I tried to publish in registry.npmjs.org/ with gitlab ci, but instead of publish, i get an error
I tried what this page says https://webbureaucrat.gitlab.io/posts/continuously-deploying-an-npm-package-with-gitlab-ci-cd/
with this gitlab-ci.yml file
image: node:latest
stages:
- deploy
deploy:
stage: deploy
script:
- echo "//registry.npmjs.org/:_authToken=${NPMJS_TOKEN}" > .npmrc
- npm publish
But I get the next error
npm notice
npm ERR! code ENEEDAUTH
npm ERR! need auth This command requires you to be logged in to https://registry.npmjs.org/
npm ERR! need auth You need to authorize this machine using `npm adduser`
npm ERR! A complete log of this run can be found in:\
I tried to change by this but I have the same output
- npm config set //registry.npmjs.org/:_authToken ${NPMJS_TOKEN}
I thought I would fixed something when i did this because the error message changes
- npm config set //registry.npmjs.org/:_authToken ${NPMJS_TOKEN}
npm notice
npm notice Publishing to https://registry.npmjs.org/
npm ERR! code E404
npm ERR! 404 Not Found - PUT https://registry.npmjs.org/xxxx - Not found
npm ERR! 404
npm ERR! 404 'xxxx#1.0.0' is not in this registry.
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
npm ERR! A complete log of this run can be found in:
But I couldn't go any further than here, the funny thing is if i go to this link https://registry.npmjs.org/xxxx after i published local, this results something by HTTP get by browser, but still show the same message, even if I increase the version
The only way i can have same error doing a local publish was doing npm publish after i delete the package, i had to change the package name to publish again (this doesn't work in gitlab)

Why is npm publish telling me the package doesn't exist?

I'm trying to upload an npm package to a GitLab registry for the first time. I set the scope and the npm config entries according to the documentation, but when I execute npm publish, I get the following error:
npm notice Publishing to https://git.myorg.com/api/v4/projects/123/packages/npm/
npm ERR! code E404
npm ERR! 404 Not Found - PUT https://git.myorg.com/api/v4/projects/123/packages/npm/#myscope%2fmyproject
npm ERR! 404
npm ERR! 404 '#myscope/myproject#1.0.0' is not in this registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
So I try to publish it, and the error says it doesn't exist and that I should publish it...what?!
From the last two lines it looks like the error is meant for an installation failure, but I have definitely used npm publish. Also, in the PUT command, the final slash between scope and project name is replaced with %2f. No idea why that happened and why it happened nowhere else, but maybe that is a symptom of the underlying issue?
Ok, it was my own fault. When executing npm config set #foo:registry https://gitlab.example.com/api/v4/projects/<your_project_id>/packages/npm/, I put in the group ID instead of the project ID in the place of <your_project_id>. We use the group only for the package registry project, so I got them confused.

npm install outputs 404 error on private package, but works inside vagrant

Read several threads here in SO but haven't found the exact some type of issue. I'm having trouble trying to install a private package from my company (hosted on GitLab). The strangest thing is that I've already made it for the same repo, but inside vagrant. On vagrant, after having receiving the following error on a npm install:
ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/#company-name%2foauth20-provider - Not found
npm ERR! 404
npm ERR! 404 '#company-name/oauth20-provider#0.8.0' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 It was specified as a dependency of 'project-srv'
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\João~1\AppData\Roaming\npm-cache\_logs\2022-02-06T14_38_17_991Z-debug.log
I solved it by following these steps:
1 - Generate a new personal access token on GitLab (scope API): https://gitlab.com/-/profile/personal_access_tokens
2 - Run commands:
npm config set #company-name:registry https://gitlab.com/api/v4/projects/project-id/packages/npm/
npm config set -- '//gitlab.com/api/v4/projects/project-id/packages/npm/:_authToken' "<my-personal-access-token>"
When I try to run npm install outside of vagrant (in the same folder or another clone of the repo), it still gives the 404 error above. The thing is, I'm certain the steps I've tried are valid, since they work inside vagrant. What can possibly change by trying to do npm install outside of vagrant? I believe that it can possibly have to do with the OS, since I'm using the Laravel Homestead vagrant box (i.e. Ubuntu 20.04), and I'm running it on a Windows 10 machine.

Protractor Error - #types/jasmine' is not in the npm registry

I am trying to install protractor but receiving following error.
command:
npm install -g protractor
npm ERR! node v4.4.3
npm ERR! npm v2.15.1
npm ERR! code E404
npm ERR! 404 no such package available : #types/jasmine
npm ERR! 404
npm ERR! 404 '#types/jasmine' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 It was specified as a dependency of 'protractor'
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
npm ERR! Please include the following file with any support request:
npm ERR! F:\temp\chrome downloads\npm-debug.log
I came across this issue today and my problem was that I had set a custom registry within the npm config file. Have you ever used "npm set registry"?
If so, you can manually tell npm where to look for the '#types' registry with the following command:
npm config set #types:registry https://registry.npmjs.org/
The problem is coming from the fact that you're using a private registry that has not yet added support for #organization packages.
In my case, I was using Sonatype Nexus and my version didn't have support for those types of packages. #Willie Valdez's suggestion is probably the best solution for you, right now.
Also, check if you have a .npmrc file in your home directory or in your project directory. The registry might be there. If that's the case, just rename the file to npmrc_bak or something else until you install the package and then revert back to its original name.
You can also include a .npmrc file in your current project with the below details:
#angular:registry=https://registry.npmjs.org
#types:registry=https://registry.npmjs.org
#ngtools:registry=https://registry.npmjs.org
#angular-cli:registry=https://registry.npmjs.org
its handy and resuable across new projects.

Resources