Openlayers 2 js文件的合并
Openlayers 2 js文件的合并(注意是2不是3)
首先大家应该知道从官网上下载的源码中有一些python文件,想必大家已经猜到这些文件是怎么合并成一个js文件的了。对,这些文件的合并就是使用python来合并的
buid和tools这两个文件中就是一些python脚本(如果看不懂,也没必要强要求自己看懂,会使用就行)
下面我会把一些需要注意的写出来,前提你需要安装python,注意版本不要太高,2.x就行,不要用3。
安装完之后,进入build目录,会看到build.py,这个是python主文件,打开这个文件,会看到有这么一段代码
sourceDirectory = “../lib”
configFilename = “full.cfg”
outputFilename = “OpenLayers.js”
if config_file:
configFilename = config_file
extension = configFilename[-4:]
if extension != ".cfg":
configFilename = config_file + ".cfg"
if output_file:
outputFilename = output_file
这个就是来找你的配置文件full.cfg,需要合并的js文件目录以及输出的文件名称
打开这个文件,大概就知道这是配置合并那些文件
现在可以试着运行一下这个python文件,会发现build目录多了一个Openalyers.js,就是你合并完成的文件。
当然,现在你可能还不知道这些依赖关系是什么,合并文件的顺序,它是按照什么文件顺序来合并的。
打开tools/mergejs.py,大体扫一眼,就看出来了,它是按照文件中的标志 @requires filepath 来合并的
所以说,如果你打算扩展源码,最后跟openlayers 2 的源码融合到一些,记住,一定要写类似于这种的有依赖关系的注释
/**
* @requires OpenLayers/SingleFile.js
*/
否则就算合并成功了,也可能会报变量未定义的错误,这是因为你依赖没有写好,合并成单文件的时候,顺序出错了
并且路径一定要完全正确
顺便补充一点,当你合并成功之后,我改个名字吧,发现又有问题了,页面样式啊,什么全乱了,how
打开目录lib\OpenLayers,打开SingleFile.js,看到这段代码
_getScriptLocation: (function() {
var r = new RegExp(“(^|(.?\/))(OpenLayers[^\/]?\.js)(\?|$)”),
s = document.getElementsByTagName(‘script’),
…..
大概就知道怎么回事了,它的一些css、img文件是相对与你的OpenLayers.js路径的,所以这个还是需要一起改的,当然你也可以从合并完的文件中改
当然也有些人会有一些需求,合并的js文件太多了,我想分开,可以,修改@requires依赖,很简单吧,没什么技术。python脚本我就不解释了,over
有问题,可加企鹅群:495321294
转载自:https://blog.csdn.net/u010468602/article/details/51348456