通常,在使用jQuery时,需要包含多个插件。这很快就会变得一团糟,特别是当一些插件需要额外的组件(图像和CSS文件)的时候。
下面是一些“推荐”的方法:
.js
、.css
和图像),并保持这些插件软件包更新到最新版本我并不是一定要找一种工具来做这件事(尽管我想,一种可以执行这种管理的工具会很有用),但更多的是一种思考方式。
发布于 2010-07-20 16:09:26
更新:目前有 、 和 ,它们会自动为我们处理以下所有事务。
我很惊讶还没有人涵盖我所做的事情。下面是我管理脚本和资源的方法。
我用SVN
设置了我工作的每个项目。我所包含的几乎所有脚本都有一个SVN镜像(github现在有svn ),这意味着我可以使用SVN外部变量,将项目的任何分支或版本或我想要的任何内容直接放到项目的scripts
文件夹中。由于我们使用的是SVN,因此很容易跟踪、管理和更新这些脚本。
如果项目不在SVN上,那么我只需将其添加到我创建的公共SVN项目中,例如项目A和项目B,都使用jquery-project-not-in-svn
,因此我们将jquery-project-not-in-svn
放入公共项目的SVN存储库中,然后在项目A和B上使用SVN外部变量来引用它-如前所述。
现在,这涵盖了管理、获取和更新。
下面是我介绍脚本包含和请求的方式。
由于每个项目现在都有自己的脚本目录,其中包含它需要的所有脚本(由SVN外部变量管理),我们现在必须考虑如何最小化它们以减少服务器上的负载。每个项目的根目录中都有一个包含命令update
的Makefile
。此命令将执行以下操作:
SVN
scripts/all.js
和scripts/all.min.js
中
我不能分享确切的Makefile
,但我可以分享一个公共的,处理CSS和Javascript的打包/合并和缩小。这是链接:http://github.com/balupton/jquery-sparkle/blob/9921fcbf1cbeab7a4f2f875a91cb8548f3f65721/Makefile
通过这些工作,我们实现了:
通过适当的脚本资源的多个projects
所以,幸运的是,如果你想了解更多,请随时发表评论。
发布于 2010-07-13 08:33:01
我建议不要更新它们,除非您遇到现有版本的问题,或者您想要使用更新后的插件中提供的新功能。俗话说得好,如果它没有坏,就不要修理它。
发布于 2010-07-20 06:05:50
我个人“推荐”的方式是把我所有的JavaScript文件放在一个include文件夹里,把所有的CSS文件放在另一个文件夹里,把所有的图片放在第三个目录里。我为我的项目编写快捷函数,然后我就可以像使用<?php scriptlink( 'jquery.tooltip' ); ?>
或<?php stylelink( 'jquery.thickbox' ); ?>
一样使用它们。每个快捷方式函数都将文件名(仅)作为参数,并输出该资源类型的完整HTML标记,即(按顺序) <script type="text/javascript" src="/includes/js/jquery.tooltip.js"></script>
或<link rel="stylesheet" href="/includes/css/jquery.thickbox.css" />
我遇到的大多数需要图像的jQuery插件都允许在脚本本身或用于调用插件的代码中指定配置变量。样式表可以很容易地包含进来,而不需要修改脚本。
到目前为止,这个方法让我保持了相当的理智,所以我认为它工作得很好。我不会纠结于我把某个插件放在哪里;我只是把它包含在一个函数中。(系统还支持包含目录的子目录,例如,<?php scriptlink( 'ui/accordion' ); ?>
等于<script type="text/javascript" src="/includes/js/ui/accordion.js"></script>
。)
当然是jquery.plugin.min.js
,但我遇到的唯一问题是当插件作者开始发布jquery.plugin.pack.js
版本而不是YMMV或相反版本时的升级,因为我实际上必须记住更改我查找的文件名。
(因为我省略了这些简单函数的实现,所以您的版本可能会检查给定文件名的不同变体。如果scriptlink()
的参数是jquery.plugin
,该函数可能会检查文件系统以查看jquery.plugin.pack.js
是否存在,如果不存在,则查找jquery.plugin.min.js
,如果不存在,则查找jquery.plugin.js
,依此类推。)
https://stackoverflow.com/questions/3233317
复制相似问题