Skip to content

Using custom registry on NPM 11.3.0+ #4165

Open
@Houbein

Description

@Houbein

Is your feature request related to a problem? Please describe.
Our company security policy does not allow us to download things from the public NPM registry, we have to use an internal mirror.
We are currently doing this by adding these lines below to an .npmrc file present in C:/Users/USERNAME
registry==https://INTERNAL_MIRROR
grpc_node_binary_host_mirror=https://INTERNAL_MIRROR
NODE_CHROMIUM_DOWNLOAD_HOST=https://INTERNAL_MIRROR
PLAYWRIGHT_DOWNLOAD_HOST=https://INTERNAL_MIRROR
nscc=https://INTERNAL_MIRROR

But from NPM version 11.2.0 this gives a depracated warning:
npm warn Unknown user config "grpc_node_binary_host_mirror". This will stop working in the next major version of npm.
npm warn Unknown user config "NODE_CHROMIUM_DOWNLOAD_HOST". This will stop working in the next major version of npm.
npm warn Unknown user config "PLAYWRIGHT_DOWNLOAD_HOST". This will stop working in the next major version of npm.
npm warn Unknown user config "nscc". This will stop working in the next major version of npm.

I tried to solve this by wrapping it in a .bat file:
SET grpc_node_binary_host_mirror=https://INTERNAL_MIRRORSET
SET NODE_CHROMIUM_DOWNLOAD_HOST=https://INTERNAL_MIRROR
SET PLAYWRIGHT_DOWNLOAD_HOST=https://INTERNAL_MIRROR
SET nscc=https://INTERNAL_MIRROR
rfbrowser clean-node
rfbrowser init

Which works in NPM 11.2.0 to remove the depracated warnings, but still fails in NPM 11.3.0.

Describe the solution you'd like
It seems NPM wants to get rid of global .npmrc settings files and wants everyone to put their settings into their package.json file. See also: giggio/node-chromedriver#535
This works for individual npm projects, but not for the Browser Library.
Because this means I would have to write a script to insert our company proxy settings into the Browser Library package.json, a script that would have to be run after every update of the Browser Library. Which is not exactly ideal.

Describe alternatives you've considered
I would like a way to tell rfbrowser_init to use our internal mirror without having to alter the package.json after every update, or things will get messy and complicated for every company that relies on a mirror.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions