如何在大型 Web 项目中将 Javascript 库更新到最新版本?

问题描述 投票:0回答:8

在处理较大的 Web 项目(例如 20 多页)时,如何使 Javascript 库更新到最新版本?我特别经常使用jQquery。好像每次看都有新版本。我在所有页面上都包含了 jQuery 库,但必须在每个页面上更新它是一件很痛苦的事情。其他人做什么?我确信一个重要的答案是使用带有单个前端控制器的框架。我已经考虑过这一点,但我还没有准备好走那条路。

jquery javascript
8个回答
8
投票

我们没有。

当更新不向后兼容时,它可能会自动破坏一些东西。我们也会定期检查邮件列表和论坛,检查是否有新版本发布,阅读变更日志和/或 codediff,并检查我们的插件的兼容性。我们通常将服务器克隆到 Goldencoat,在那里测试新版本,看看是否有任何问题。

如果优势超过了更新所需的努力,我们就会这样做,但前提是经过了足够的时间并且社区发现并解决了版本的初始错误。


4
投票

您始终可以通过此网址使用最新的 jQuery:

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js

当然你必须小心,因为它可能会破坏东西(特别是如果有重大版本更改)。


3
投票

这里为您提供一个不涉及框架或服务器端的选项

所有页面都会加载您自己的引导加载程序库。

所以我们假设您有一个 boorloader.js 文件并且所有 html 文件都包含它。在该文件中,您可以在顶部插入以下代码。

var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js";
var head = document.getElementsByTagName('head');
head[0].appendChild(jq);

您可以抽象其中的大部分内容以支持许多不同的数据点,但最终结果是您从一个文件异步注入 jQuery 库。更新一次,您的所有 HTML 也会更新。


1
投票

某种形式的templateinclude系统,其中有很多。

大型框架往往会附带模板系统,但您没有来使用它。如果您预处理,您甚至不需要服务器端编程。


1
投票

我通常只对我控制的资源使用“不透明”目标 - 例如“jquery.js”。然而,这有几个缺点:

不能依赖 CDN 的确切版本(必须是
    受控
  1. 资源)。对于本地 Javascript 资源来说,这无论如何都不是问题,但它确实会影响具有众所周知的 CDN URL 的库。 所有文件必须始终使用相同版本。 (例如“jquery.js”是“jquery-1.4.1.js”)。对于我所从事的项目来说,这不是问题,但对于较大的项目来说,这可能是一个问题。
  2. 删除了一些版本号的自我文档。
  3. 通过使用半透明资源,例如“jquery-1.4.js”,可以缓解但不能消除上述问题(注意缺少修订/错误修复版本;可能指 1.4.0 或 1.4.1,但不是 1.5.x)。

快乐编码。


1
投票
使用通用的服务器端包含来指向您想要的版本

指向本地网址,然后将其解析为您想要的版本
  • 一般来说,无缘无故地更新库是不好的,因为旧的库会做你想要的事情。但一般来说,最好包装与外部系统的交互,以便您可以集中控制它们。


0
投票

如果我在 .NET 中工作,我更喜欢将 JS 和 CSS 等内容放入包含或 MasterPage 中。


0
投票
https://docs.npmjs.com/about-semantic-versioning

在大型应用程序中的大多数情况下,您确实只会接受特定版本,因为这是您已经测试过并确定的版本。但在某些情况下,您可能希望允许补丁更新,因为理论上这些更新应该只包括向后兼容的错误修复。但是允许任何类型的更新确实会带来一定的风险,因为您相信不会引入错误。在应用程序中发现新错误,然后必须缩小其来源范围,却发现该错误不是您自己引入的,这可能真的很麻烦。

我曾在一些团队中工作过,我们在预提交上运行一个脚本,当您处于主要版本或更落后的版本时,它会警告您。这样您就可以制作一张票来调查新的更新。

© www.soinside.com 2019 - 2024. All rights reserved.