UNPKG
Mục Lục
UNPKG
unpkg is a fast, global content delivery network for everything on npm. Use it to quickly and easily load any file from any package using a URL like:
unpkg.com/:package@:version/:file
Examples
Using a fixed version:
You may also use a semver range or a tag instead of a fixed version number, or omit the version/tag entirely to use the latest
tag.
If you omit the file path (i.e. use a “bare” URL), unpkg will serve the file specified by the unpkg
field in package.json
, or fall back to main
.
Append a /
at the end of a URL to view a listing of all the files in a package.
Query Parameters
?meta
- Return metadata about any file in a package as JSON (e.g.
/any/file?meta
) ?module
- Expands all “bare”
import
specifiers in JavaScript modules to unpkg URLs. This feature is very experimental
Cache Behavior
The CDN caches files based on their permanent URL, which includes the npm package version. This works because npm does not allow package authors to overwrite a package that has already been published with a different one at the same version number.
Browsers are instructed (via the Cache-Control
header) to cache assets indefinitely (1 year).
URLs that do not specify a package version number redirect to one that does. This is the latest
version when no version is specified, or the maxSatisfying
version when a semver version is given. Redirects are cached for 10 minutes at the CDN, 1 minute in browsers.
If you want users to be able to use the latest version when you cut a new release, the best policy is to put the version number in the URL directly in your installation instructions. This will also load more quickly because we won’t have to resolve the latest version and redirect them.
Workflow
For npm package authors, unpkg relieves the burden of publishing your code to a CDN in addition to the npm registry. All you need to do is include your UMD build in your npm package (not your repo, that’s different!).
You can do this easily using the following setup:
- Add the
umd
(ordist
) directory to your.gitignore
file - Add the
umd
directory to your files array inpackage.json
- Use a build script to generate your UMD build in the
umd
directory when you publish
That’s it! Now when you npm publish
you’ll have a version available on unpkg as well.
About
unpkg is an open source project built and maintained by Michael Jackson. unpkg is not affiliated with or supported by npm, Inc. in any way. Please do not contact npm for help with unpkg. Instead, please reach out to @unpkg with any questions or concerns.
The unpkg CDN is powered by Cloudflare, one of the world’s largest and fastest cloud network platforms.
The origin server runs on auto-scaling infrastructure provided by Fly.io. The app servers run in 17 cities around the world, and come and go based on active requests.