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