UNPKG

unpkg是一个快速访问 npm资源的CDN, 它可以容易且快速地加载任何npm包的文件, 使用如下的URL格式即可访问:

https://unpkg.luckincoffeecdn.com/:package@:version/:file

示例

使用固定版本号:

你也可以使用 semver rangetag 代替固定版本号, 或者完全省略版本/标签以使用latest标签。

如果省略文件路径 (即使用“裸”URL), unpkg将提供在package.json中的unpkg字段中指定的文件, 或者回退到main配置的对应文件。

在URL末尾附加/可以查看包中所有文件的列表。

查询参数

?meta
返回指定 npm 包中任何文件的元数据, 以 JSON 格式呈现 (e.g./any/file?meta)
?module
将 JavaScript 模块中所有“裸” import说明符扩展为unpkg URL。这个特性是非常实验性的。

缓存行为

CDN 根据其永久 URL (包括 npm 包版本) 缓存文件。这是可行的, 因为 npm 不允许包作者用不同的内容替换已经发布的相同版本号的包。

浏览器根据 Cache-Control 标头的指示无限期缓存资源(1 年)。

没有指定包版本号的 URL 会重定向到指定版本号的 URL。如果没有指定版本号, 则重定向到 latest版本, 如果给出了semver version版本, 则重定向到 maxSatisfying版本。重定向在 CDN 缓存 10 分钟, 在浏览器中缓存 1 分钟。

如果你希望用户在你发布新版本时能够使用最新版本, 则最好在你的安装说明中直接将版本号放在URL中。这样加载速度也会更快, 因为我们不需要解析最新版本并将其重定向。

工作流程

对于 npm 包作者, unpkg 可以减轻你在将代码发布到 npm 注册表之外还需要将代码发布到 CDN 的负担。你只需要在你的 npm 包中包含UMD构建(而不是你的仓库, 那是不同的!).

你可以通过以下设置轻松实现:

  • umd (or dist) 目录添加到 .gitignore 文件中
  • 添加umd 目录到你的package.json中的files配置中
  • 使用一个构建脚本在发布时生成 UMD 构建到 umd 目录中

这样当你 npm publish 时, 你的版本也会在 unpkg 上可用。

关于

unpkg是由Michael Jackson 建立和维护的一个开源项目, 它不与npm Inc.有任何关联或支持。请不要联系npm来获取有关unpkg的帮助。如果有任何问题或疑虑, 请与@unpkg联系。瑞幸unpkg站点地址为https://unpkg.lkcoffee.com/

私有源使用verdaccio搭建, 它帮助助用户在本地或私有网络上建立一个可控的、高度可定制化的 NPM 仓库。用户可以通过 Verdaccio 管理自己的 NPM 包,也可以通过配置适当的访问权限来控制团队成员的包访问权限。瑞幸私有源地址为: https://verdaccio.lkcoffee.com/