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。
大家早上好。
我知道你们都不喜欢这个问题,因为这是一个糟糕的设计软件行为,可能会导致预期功能的常见中断。 但是现在,我只是在设计一个 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 存储库存在我之前发现的非常确切的问题:
似乎 NPM 上的缩小版本在 RegExp 选择器上也有 "back-slash" 错误。而在来自 jquery UI 网站的 CDN 的缩小版本中,还没有。从两个站点(jquery 官方 CDN 和 NPM 存储库)看到的代码的未压缩版本完全相同(二进制相同),反斜杠也不在其中。因此,某些存储库(包括 NPM)中存在的缩小版本是不正确的。
我什至自己缩小了完整版,RegExp 没有以任何方式修改(所以没有添加反斜杠)。不明白为什么会发生这种情况,但解决方案将包括 jquery UI 的解压缩版本,它的大小是原来的两倍,大约从 ~200KB 到 500KB。