Javascript 管理jQuery插件

Javascript 管理jQuery插件,javascript,jquery,jquery-plugins,organization,Javascript,Jquery,Jquery Plugins,Organization,通常,在使用jQuery时,需要包含多个插件。这可能会很快变得混乱,尤其是当一些插件需要额外的组件(图像和CSS文件)时 以下是一些“推荐”的方法: a.以易于维护的方式管理所需的文件/组件(.js、.css和图像),以及 b.将这些插件包更新至最新版本 我不一定要找一个工具来做这件事(虽然我认为一个可以执行这种管理的工具会很有用),但更多的是一种思考方式。我建议不要更新它们,除非你的版本有问题,或者你想使用更新插件中提供的新功能。俗话说,如果没有损坏,就不要修复它。我个人的“推荐”方法是将

通常,在使用jQuery时,需要包含多个插件。这可能会很快变得混乱,尤其是当一些插件需要额外的组件(图像和CSS文件)时

以下是一些“推荐”的方法:

  • a.以易于维护的方式管理所需的文件/组件(
    .js
    .css
    和图像),以及
  • b.将这些插件包更新至最新版本

我不一定要找一个工具来做这件事(虽然我认为一个可以执行这种管理的工具会很有用),但更多的是一种思考方式。

我建议不要更新它们,除非你的版本有问题,或者你想使用更新插件中提供的新功能。俗话说,如果没有损坏,就不要修复它。

我个人的“推荐”方法是将我的所有JavaScript文件保存在一个include文件夹中,所有CSS文件保存在另一个文件夹中,所有图像保存在第三个目录中。我为我的项目编写快捷功能,然后可以像
那样使用。每个快捷方式函数都将文件名(仅)作为参数,并输出该资源类型的完整HTML标记,即(按顺序)

我遇到的大多数需要图像的jQuery插件都允许在脚本本身或用于调用插件的代码中指定配置变量。样式表很容易包含,而不需要修改脚本

到目前为止,这种方法让我保持了相当清醒的头脑,所以我认为它相当有效。我不会因为我把某个插件插在哪里而大发雷霆;我只是把它包括在一个函数中。(系统还支持include目录的子目录,例如
等于

当然是YMMV,但我遇到的唯一问题是当插件作者开始分发
jquery.plugin.pack.js
版本而不是
jquery.plugin.min.js
或反之亦然时,升级,因为我实际上必须记住更改我查找的文件名


(由于我省略了这些简单函数的实现,您的版本可能会检查给定文件名的不同变体是
jquery.plugin
,该函数可能会检查文件系统是否存在
jquery.plugin.pack.js
,如果不存在,则查找
jquery.plugin.min.js
,如果不存在,则查找
jquery.plugin.js
,等等)

我的所有jquery插件都被组织到包含版本号的子文件夹中

  • /assets/js/plugin.1.4.1/plugin.1.4.1.min.js
  • /assets/js/plugin.1.4.1/images/image.gif
如果我需要更新到1.4.2,我可以把它放到一个新的文件夹中,而不会有太多问题,如果需要的话,我甚至可以在网站的不同部分使用特定版本的插件。当我的站点很大,并且您使用了几个不同的插件时,不必在plugin.js文件中挖掘源注释,就可以快速查看版本号

如果一个插件需要CSS,我会从插件CSS中取出基本样式,并将它们与我的主样式表捆绑在一起,请求额外的CSS文件是昂贵的,而且10次中有9次会被定制。同样,对于图像,如果我正在进行任何图像定制,我会将这些图像捆绑到我的主图像精灵中,否则我只会将这些图像链接到plugin.1.4.1目录中

是的,您的回购协议中最终会有更多的文件,但这意味着:

  • 只需更新路径,就可以轻松升级插件
  • 您可以更轻松地调试插件问题,因为您可以看到自己已经过时了
  • 如果一切都中断,您可以回滚到早期版本

您可以利用谷歌CDN(内容交付网络)获得更流行的插件。谷歌让它保持最新,你可以快速选择/切换版本,你还可以从其他使用CDN的网站获得缓存的好处

jQuery的示例:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>


如果您想自动使用更高版本,请将版本更改为1.4(自动1.4.x更新)甚至1(自动1.x.x更新)。不幸的是,并不是所有的插件都可用,但许多主要的插件都可用。

更新:现在有了,它们会自动为我们处理以下所有问题。

我很惊讶还没有人报道我所做的事情。下面是我如何管理脚本和资源

我的每个项目都使用
SVN
进行设置。我所包含的几乎所有脚本都有一个SVN镜像(github现在有SVN),这意味着我可以使用SVN externals,直接将该项目的任何分支或版本或我想要的任何内容提取到projects
scripts
文件夹中。当我们使用SVN时,跟踪、管理和更新这些脚本是很容易的

如果一个项目不在SVN上,那么我只需将其添加到我制作的一个公共SVN项目中,例如项目a和项目B,都使用
jquery项目不在SVN中
,因此我们将
jquery项目不在SVN中
粘贴到公共项目的SVN存储库中,然后在项目A和B上使用SVN外部来引用它-如前所述

现在包括管理、获取和更新

下面是我如何介绍脚本包含和请求的内容

由于每个项目现在都有自己的脚本目录,其中包含它所需的所有脚本(由SVN externals管理),因此我们现在必须担心如何缩小它们以减少服务器上的负载。每个项目的根目录中都有一个
Makefile
,其中包含命令
update
。此命令将执行以下操作:

  • 执行SVN更新(这将适当地更新所有SVN外部)
  • 一旦完成,它将打包并缩小所有