Wednesday, September 6, 2017

NPM–Specifying a different registry

I already talked about the NPM registry before. Today I want to share another trick I discovered when looking in the SignalR documentation;

The JavaScript client is being published to our dev npm registry as @aspnet/signalr-client. The module contains a browserfied version of the client. You can install the module as follows:

  • Create an .npmrc file with the following line: @aspnet:registry=https://dotnet.myget.org/f/aspnetcore-ci-dev/npm/
  • Run: npm install @aspnet/signalr-client

I wasn’t aware of the existance of an .npmrc file.

NPM gets its config settings from the 3 locations:

  • command line
  • environment variables
  • npmrc files.

The nice thing is that you can create a .npmrc file at multiple levels that will be picked up when executing NPM commands. You can set a .npmrc file

  • per-project config file (/path/to/my/project/.npmrc)
  • per-user config file (~/.npmrc)
  • global config file ($PREFIX/etc/npmrc)
  • npm builtin config file (/path/to/npm/npmrc)

So if we want that NPM uses a different registry for a specific project(which is something we want for the SignalR package as it is not part of the official NPM repo yet), we can create a .npmrc file at the project level and specify a @scope and a related registry. Inside our commands we can than use this scope to point to a specific registry

    npm install @aspnet/signalr-client

    Documentation: https://docs.npmjs.com/files/npmrc

    1 comment:

    Vcom Infotech Company said...

    Informative post share about the specifying of these different registry which you have within this details. Thank you very much. Web designing company in Coimbatore | Coimbatore website designing company