Repository navigation
ng update ignores project .npmrc registry #27163
Description
Command
update
Is this a regression?
- Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was
No response
Description
I have a project level .npmrc with
registry=https://registry.npmjs.org/
and a user level .npmrc with
registry=https://example-company-private-repo.org/
As described here https://docs.npmjs.com/cli/v10/configuring-npm/npmrc project level config should override user level config. The output of npm config:
; "user" config from /Users/sam.wootton/.npmrc
; registry = "https://example-company-private-repo.org/" ; overridden by project
; "project" config from /Users/sam.wootton/devspace/personal/ngstuff/myproject/.npmrc
registry = "https://registry.npmjs.org/"
; "cli" config from command line options
Minimal Reproduction
ng update (with different registry in .npmrc at the user and project level).
I've removed node_modules (to ensure no packages from the user level registry)
Exception or Error
Running ng update, the user level registry is used and the project level one is ignored:
ng update @angular/core@16 @angular/cli@17
The installed Angular CLI version is outdated.
Installing a temporary Angular CLI versioned 16.2.12 to perform the update.
npm ERR! code ENOTFOUND
npm ERR! syscall getaddrinfo
npm ERR! errno ENOTFOUND
npm ERR! network request to https://company-private-repo.org/@angular%2fcli failed, reason: getaddrinfo ENOTFOUND company-private-repo.org
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly. See: 'npm help config'
### Your Environment
Angular CLI: 15.2.10
Node: 16.15.0
Package Manager: npm 8.5.5
OS: darwin arm64
Angular:
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, router
Package Version
@angular-devkit/architect 0.1502.10 (cli-only)
@angular-devkit/build-angular
@angular-devkit/core 15.2.10 (cli-only)
@angular-devkit/schematics 15.2.10 (cli-only)
@angular/cli 15.2.10 (cli-only)
@schematics/angular 15.2.10 (cli-only)
rxjs 6.6.7 (cli-only)
typescript
### Anything else relevant?
_No response_
Activity
alan-agius4 commentedon Mar 4, 2024
Can you please run the update command with the
--verboseoption and provide the output? Thanks.samwootton commentedon Mar 5, 2024
I was attempting to recreate from scratch, unfortunately have the same issue with
ng new --create-application=falseIt hangs if I have this in my ~/.npmrc
registry=https://example-company-private-repo.org/But works if I have
registry=https://registry.npmjs.orgIn both examples, the project directory .npmrc has
registry=https://registry.npmjs.orgI can't run ng new with verbose, doesn't seem to be an option
https://angular.io/cli/new
Thanks, Sam
alan-agius4 commentedon Mar 5, 2024
@samwootton, I looks like you are reporting a a slightly different issue.
samwootton commentedon Mar 5, 2024
@alan-agius4 same issue, just with "new" instead of "update".
I guess as the initial directory just has .nmprc (and there is no ng workspace / project), that .npmrc is ignored and the ~/.npmrc is used. There's no way to specify an .npmrc or registry when running "ng new"?
samwootton commentedon Mar 9, 2024
@alan-agius4 I ran with --verbose, you can see from the log here, the ~/.npmrc is being chose (line 11).
You can see I use nvm too. Here's the log output:
Here is the console output:
I think this could be nvm rather than ng.
I could not replicate the original issue when I didn't use NVM.
Issue npm/cli#5460 ?
Sam
alan-agius4 commentedon Mar 12, 2024
During
ng update, Angular CLI temporarily installs itself, generating a new directory, such as/private/var/folders/qw/95f4vfgn1wb8gz402xpx0n6w0000gp/T/angular-cli-packages-StDlIR, where it executesnpm installto fetch the latest Angular CLI version for the update. However, NPM fails to locate the project's .npmrc configuration in this location.For
ng new, you can utilize the--skip-installflag, create the.npmrcfile after the command completes, and manually executenpm install.However, as highlighted in npm/cli#5460 (comment), unless your company's NPM repository also functions as a proxy to the public repository, employing scopes would certainly be a more recommended approach.
samwootton commentedon Mar 12, 2024
Thanks @alan-agius4.
I'll follow your steps for
ng new.Is a change going to be made to
ng update?Sam
alan-agius4 commentedon Mar 12, 2024
Yes, but there is no ETA for the
ng updatebug fix.jontze commentedon Apr 11, 2024
I had the same issue with
ng updateignoring my .npmrc config, where the private registry serves as a proxy.I recognized that only the temporary installation of the newer
@angular/cliis not respecting the .npmrc config. So to work around this, I updated the Angular CLI manually in the package.json and installed it. After that, I could use theng updatecommand as usual and also apply the updates and migrations of other Angular packages via the private proxy registry.samwootton commentedon Oct 26, 2024
Is there any update on a fix for this issue?
muuvmuuv commentedon Nov 20, 2024
Having a little different issue that it just not pick my .npmrc from the root project directory when running ng update in a monorepo application project directory.
fix(@angular/cli): copy project config files to temp directory during…
fix(@angular/cli): copy project config files to temp directory during…
angular-automatic-lock-bot commentedon Jul 18, 2026
This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.
Read more about our automatic conversation locking policy.
This action has been performed automatically by a bot.