Current Behavior:
I am attempting to configure a project to install dependencies from NPM. I will be publishing the project to GitHub Packages as a private package. If I use this syntax in my project's .npmrc:
@my-org:registry=https://npm.pkg.github.com/
I can install dependencies from NPM using npm install on my local machine. However, I cannot publish to GitHub Packages using npm publish. NPM informs me that I'm not authenticated. If I use this syntax in my project's .npmrc:
registry=https://npm.pkg.github.com/my-org/
I can publish using npm publish, but I cannot install dependencies with npm install. NPM informs me that it's trying to install dependencies from GitHub Packages, rather than NPM.
Expected Behavior:
Based on my reading, both syntaxes should be compatible with npm install and npm publish. However, it appears I can only use one or the other, based on my intended use.
Steps To Reproduce:
-
Install Node v15.7.0 and NPM 7.4.3 via nvm.
-
Log in to GitHub Packages with the command:
npm login --scope=@my-org --registry=https://npm.pkg.github.com
-
Check our ~/.npmrc file in our home folder. It should read:
@my-org:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=<auth-token-used-for-login>
-
Create project with the following package.json:
{
"name": "@my-org/my-package",
"description": "A test.",
"version": "1.0.0",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://github.com/my-org/my-package.git"
},
"keywords": ["example"],
"author": "Me",
"license": "ISC",
"bugs": {
"url": "https://github.com/my-org/my-package/issues"
},
"homepage": "https://github.com/my-org/my-package",
"dependencies": {
"bootstrap": "^4.5.2"
}
}
-
Add the following .npmrc to our project:
@my-org:registry=https://npm.pkg.github.com/
-
Run npm install. Installation should succeed.
-
Run npm publish. Receive the following error:
npm ERR! code ENEEDAUTH
npm ERR! need auth This command requires you to be logged in.
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:
npm ERR! /Users/my-user/.npm/_logs/2021-01-28T20_19_55_974Z-debug.log
-
Change the project .npmrc to:
registry=https://npm.pkg.github.com/my-org/
-
Run npm publish. Publishing should succeed.
-
rm -rf node_modules/ package-lock.json in project.
-
Run npm install. Receive following error:
npm ERR! code E401
npm ERR! Incorrect or missing password.
npm ERR! If you were trying to login, change your password, create an
npm ERR! authentication token or enable two-factor authentication then
npm ERR! that means you likely typed your password in incorrectly.
npm ERR! Please try again, or recover your password at:
npm ERR! https://www.npmjs.com/forgot
npm ERR!
npm ERR! If you were doing some other operation then your saved credentials are
npm ERR! probably out of date. To correct this please try logging in again with:
npm ERR! npm login
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/my-user/.npm/_logs/2021-01-28T20_38_20_711Z-debug.log
Environment:
- OS:
- MacOS Catalina 10.15.7 (Intel Mac Mini)
- MacOS Big Sur 11.1 (Apple Silicon MacBook AIr)
- Node: 15.7.0
- npm:
Current Behavior:
I am attempting to configure a project to install dependencies from NPM. I will be publishing the project to GitHub Packages as a private package. If I use this syntax in my project's
.npmrc:I can install dependencies from NPM using
npm installon my local machine. However, I cannot publish to GitHub Packages usingnpm publish. NPM informs me that I'm not authenticated. If I use this syntax in my project's.npmrc:I can publish using
npm publish, but I cannot install dependencies withnpm install. NPM informs me that it's trying to install dependencies from GitHub Packages, rather than NPM.Expected Behavior:
Based on my reading, both syntaxes should be compatible with
npm installandnpm publish. However, it appears I can only use one or the other, based on my intended use.Steps To Reproduce:
Install Node
v15.7.0and NPM7.4.3via nvm.Log in to GitHub Packages with the command:
Check our
~/.npmrcfile in our home folder. It should read:Create project with the following
package.json:{ "name": "@my-org/my-package", "description": "A test.", "version": "1.0.0", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "https://github.com/my-org/my-package.git" }, "keywords": ["example"], "author": "Me", "license": "ISC", "bugs": { "url": "https://github.com/my-org/my-package/issues" }, "homepage": "https://github.com/my-org/my-package", "dependencies": { "bootstrap": "^4.5.2" } }Add the following
.npmrcto our project:Run
npm install. Installation should succeed.Run
npm publish. Receive the following error:Change the project
.npmrcto:Run
npm publish. Publishing should succeed.rm -rf node_modules/ package-lock.jsonin project.Run
npm install. Receive following error:Environment: