EckherInsightsContact
Eckher
Your guide to what's next.
Eckher
Home › Eckher Insights › Loading npm dependencies from multiple registries
Aug 20, 2020

Loading npm dependencies from multiple registries

How to add npm dependencies from multiple package registries?

package.json does not support explicitly specifying which registries to route package requests to for its dependencies and devDependencies.

It is possible that the project uses dependencies from the npm registry and one or more GitHub Packages.

By default, npm install loads the modules from the npm package registry, https://registry.npmjs.org/, because this is the default value of registry in the npm config (a line in .npmrc or npm config get registry):

registry=https://registry.npmjs.org/

If this value is changed to say, https://npm.pkg.github.com, npm install will try to load all project dependencies from GitHub Packages. It is possible, however, to override this value for a specific @SCOPE using the following syntax:

@SCOPE:registry=https://npm.pkg.github.com/

For instance, if the project has the following package.json:

{
    "dependencies": {
        "@octo-org/octo-app": "1.0.0",
        "react": "^16.9.0"
    }
}

and .npmrc:

@octo-org:registry=https://npm.pkg.github.com/

then npm install will download react from the npm registry and @octo-org/octo-app from GitHub Packages.

This configuration allows one registry to host multiple scopes, but a scope can only point to a single registry.

Cover
See also
npm exec: A new way to run commands from npm packages
npm v7 has introduced the new npm exec command which, like npx, can be used to run npm scripts "on the fly".
Authenticating to an npm registry
How to authenticate to an npm registry?
Publishing an npm package to GitHub Packages
How to publish an npm package to GitHub Packages?
Server-side rendering with code splitting
How to implement server-side rendering with code splitting?
Working with ChemDraw JS
ChemDraw JS makes it possible to create, view, and edit chemical structures in the browser.
Gatsby vs. Next.js
What is the difference between Gatsby and Next.js?
How to run a JSX script?
Executing .jsx files with command line.
Eckher
Your guide to what's next.
Copyright © 2021 Eckher. Various trademarks held by their respective owners.