JQUERY UI: link 始终获得 "jquery-ui.min.js" 的最新版本

JQUERY UI: link to get ALWAYS the very last version of "jquery-ui.min.js"

大家早上好。

我知道你们都不喜欢这个问题,因为这是一个糟糕的设计软件行为,可能会导致预期功能的常见中断。 但是现在,我只是在设计一个 PoC,我需要 运行 始终使用非常常见的第​​三方库的最新版本。

因为我可以访问 jQuery Github 站点,并使用 jsDelivr + SRIHash,我可以为我的代码提供最新版本的 jquery(或任何其他包含 "inclusable" JS 的库)。

所以,这个:

https://raw.githubusercontent.com/jquery/jquery-dist/master/dist/jquery.min.js

变成这样:

https://cdn.jsdelivr.net/gh/jquery/jquery-dist/dist/jquery.min.js

最后:

<script src="https://cdn.jsdelivr.net/gh/jquery/jquery-dist/dist/jquery.min.js" integrity="sha384-tsQFqpEReu7ZLhBV2VZlAu7zcOV+rXbYlF2cqB8txI/8aZajjp4Bqd+V6D5IgvKT" crossorigin="anonymous"></script>

上层 LINK 将始终提供最新的 Jquery 版本。任何时候都没有指定版本。

因此,如前所述,这可用于任何类型的 JS,它在某个文件夹上保留其通用库名称并对其自身进行版本控制,而不是在某些版本子文件夹中。 这正是 Jquery-UI 的问题所在。更糟糕的是,因为它没有合适的 jquery-ui.min.js这正是我需要的.

我找到了像这样的第三人称近似值:

https://github.com/components/jqueryui

但它仍然是最后一个版本,它是一个不正确的库版本,因为它在代码中有一个小而重要的区别(RegExp 上的斜杠符号),所以它不是一个可靠的版本它。

我试过 Google 和 Microsoft 的 CDN。 NPM、Composer、Bower...所有这些都是版本化链接,因此您必须在某些时候指定“.../1.12.1/...”。

¿想法?

非常感谢。

不错! 自己找的。在疯狂搜索之后,似乎 NPM 有一个由 jquery 人(官方,而不是第三人)创建的存储库,称为 "DIST",它里面有它必须拥有的东西:

<script src="https://cdn.jsdelivr.net/npm/jquery-ui-dist/jquery-ui.min.js" integrity="sha384-PtTRqvDhycIBU6x1wwIqnbDo8adeWIWP3AHmnrvccafo35E7oIvW7HPXn2YimvWu" crossorigin="anonymous"></script>

就是这样:

https://www.npmjs.com/package/jquery-ui-dist

然后通过jsDelivr:

https://www.jsdelivr.com/package/npm/jquery-ui-dist

https://cdn.jsdelivr.net/npm/jquery-ui-dist/jquery-ui.min.js

然后,SRI Hash 就结束了。

不错!


编辑:

碰巧 NPM dist 存储库存在我之前发现的非常确切的问题:

(左,最小版本来自 jquery UI cdn 站点。右,最小版本来自 NPM jquery-ui-dist 存储库)

似乎 NPM 上的缩小版本在 RegExp 选择器上也有 "back-slash" 错误。而在来自 jquery UI 网站的 CDN 的缩小版本中,还没有。从两个站点(jquery 官方 CDN 和 NPM 存储库)看到的代码的未压缩版本完全相同(二进制相同),反斜杠也不在其中。因此,某些存储库(包括 NPM)中存在的缩小版本是不正确的。

我什至自己缩小了完整版,RegExp 没有以任何方式修改(所以没有添加反斜杠)。不明白为什么会发生这种情况,但解决方案将包括 jquery UI 的解压缩版本,它的大小是原来的两倍,大约从 ~200KB 到 500KB。