unpkg是一个快速的全球内容交付网络,适用于npm上的所有内容。使用它可以使用以下URL快速轻松地从任何包加载任何文件
unpkg.com/:package@:version/:file
从年4月13至5月13 unpkg担任17033391868个请求,共207 TB的数据到1549091717个唯一访问者,99.19 %,其中,从缓存中提供。
例子
使用固定版本:
- unpkg.com/react@16.7.0/umd/react.production.min.js
- unpkg.com/react-dom@16.7.0/umd/react-dom.production.min.js
您也可以使用semver范围或标签而不是固定版本号,或完全省略版本/标签以使用标签。 latest
如果省略文件路径(即使用“裸”URL),则unpkg将提供unpkg
字段指定的文件,或者回退到。 package.json
main
/
在URL的末尾附加一个以查看包中所有文件的列表。
查询参数
?meta
将包中任何文件的元数据作为JSON返回(例如/any/file?meta
)
?module
扩展JavaScript模块中的所有“裸” 说明符以取消URL。此功能非常实验性 import
缓存行为
CDN根据其永久URL缓存文件,其中包括npm包版本。这是有效的,因为npm不允许包作者覆盖已使用相同版本号的不同包发布的包。
未指定包版本号的URL重定向到具有的版本号。这是latest
没有指定版本的版本,或者给出semver版本maxSatisfying
时的版本。重定向缓存5分钟。
浏览器(通过Cache-Control
标题)被指示缓存资产1年。
工作流程
对于npm包作者,除了npm注册表之外,unpkg还可以减轻将代码发布到CDN的负担。您需要做的就是在您的npm包中包含您的UMD构建(而不是您的仓库,这是不同的!)。
您可以使用以下设置轻松完成此操作:
- 将
umd
(或dist
)目录添加到您的文件中.gitignore
- 将
umd
目录添加到文件数组中package.json
- 发布时,使用构建脚本在目录中生成UMD构建
umd
而已!现在,当你npm publish
在unpkg上也有一个版本时。
关于
unpkg是由Michael Jackson建立和维护的开源项目。unpkg不以任何方式与npm,Inc。有任何关联或支持。请不要联系npm获取unpkg的帮助。相反,如有任何问题或疑虑,请与@unpkg联系。
unpkg CDN由Cloudflare提供支持,Cloudflare是世界上最大,最快的云网络平台之一。在过去的一个月里,Cloudflare 为全世界超过207 TB的1,549,091,717名独特的unpkg用户提供服务。
unpkg的原始服务器由Google Cloud提供支持,并通过Angular Web框架的慷慨捐赠成为可能,Angular Web框架是世界上最受欢迎的图书馆之一,用于在桌面和移动设备上构建令人难以置信的用户体验。
二