Proposal: change the default provider from cndjs to an NPM-based provider
Currently Cdnjs is the default provider in both the UI wizard and the default generated libman.json file. However, the Cdnjs catalog is a curated set of libraries; it does not include all libraries from NPM, and it does not include pre-release versions of well-known libraries.
Some feedback we have received indicates that users expect to find any NPM library in the default experience. These searches will fail against the Cdnjs catalog due to its selective curation.
The proposed change would make one of the other providers which does support NPM to be the default. Cdnjs will continue to be supported.
If we move forward with this, we should also consider:
- [ ] Can we tell from telemetry which providers are being used today? Will this change better meet current usage trends, or deviate from them?
- [ ] Can we determine reliability statistics for each provider? (Cdnjs was initially picked as a default because of unreliable downloads elsewhere)
The proposed change would make one of the other providers which does support NPM to be the default. Cdnjs will continue to be supported.
I'm currently using npm to get packages and then libman with a filesystem provider to copy the desired files from node_modules to the desired locations (as far as I know this is the way to do this?). What provider that supports NPM are you referring to?
@jswolf19 the unpkg and jsdelivr providers pull from their respective mirrors of the NPM repository. Basically, you get the same files but without the NPM steps. If you're just pulling in couple files, this will likely save a lot of unnecessary downloads. Jsdelivr also provides minimized versions of any package file, even if the NPM package doesn't contain a minimized version.
On the other hand, if you're consuming the entire NPM package contents (or a lot of it), the NPM download has better compression because they download a single compressed tarball whereas libman makes separate requests per file.