gpt4 book ai didi

ant - dojo 发布版本的问题

转载 作者:行者123 更新时间:2023-12-04 03:12:18 24 4
gpt4 key购买 nike

我们在我们的应用程序中使用 dojo 1.7.2。即使 AMD此版本支持,我们根本没有使用这种方法。我们还在走
与旧版 dojo.require("package")方法。

我们需要为我们的应用程序创建一个发布版本。以下是我们用来执行此操作的配置文件。我们正在使用 ANT执行此操作的任务。我们的简介
非常简单,不需要太多的道场。

dependencies = {
layers: [
{
name:"cutom_dojo.js",
resourceName:"custom-dojo",
dependencies:[
"dojo.NodeList-traverse",
"dojo.io.iframe",
"dojo.date",
]
}
],
prefixes: [
[ "dijit", "../dijit" ],
[ "dojox", "../dojox" ]
]
}

现在我们正在使用下面的 ANT 任务创建发布版本。
<target name="create-dojo-release">
<echo message="Starting Dojo Release Build " />
<java fork="true" dir="${shrinksafe.util.path}/buildscripts" classname="org.mozilla.javascript.tools.shell.Main">
<classpath>
<pathelement location="${shrinksafe.util.path}/shrinksafe/js.jar" />
<pathelement location="${shrinksafe.util.path}/closureCompiler/compiler.jar"/>
<pathelement location="${shrinksafe.util.path}/shrinksafe/shrinksafe.jar" />
<pathelement path="${java.class.path}" />
</classpath>
<arg value="../../dojo/dojo.js"/>
<arg value="baseUrl=../../dojo"/>
<arg value="releaseDir=${dojo.release.dir}"/>
<arg value="load=build"/>
<arg value="profile=${dojo.profile.file}" />
<arg value="action=clean,release" />
<arg value="version=1.7.2" />
<arg value="releaseName=cutom_dojo" />
<arg value="cssOptimize=comments" />
<arg value="copyTests=false" />
</java>
<echo message="Dojo Release build successfull." />
</target>

我们在 dojo 文件夹中获得了一个 custom_dojo.js 文件。我们在我们的应用程序中包含了这个 JS 文件。当我们打开这个 JS 文件并搜索这些包时
层中提到,它们都在那里可用。但是当我们访问应用程序页面时,我们仍然会看到为各个模块发送单独的 HTTP 请求,即使 custom_dojo.js文件包含在页面顶部。如果我们以正确的方式这样做,您能否建议我们?

最佳答案

您似乎正在以不推荐使用的旧格式编写构建配置文件。新的(V1.6 后)方式是这样的:

var profile = (function(){
return {
basepath: ".",
packages: [
{name: "dojo", location: "./dojo-release-1.7.4-src/dojo"}
],
layers: {
"dojo/custom_dojo": {include: [
"dojo/NodeList-traverse",
"dojo/io/iframe",
"dojo/date"
]}
}
};
})();

当然替换您自己的路径等。另外请注意,我用新的斜杠表示法而不是旧的点分表示法指定模块 ID。

然后我像这样构建它:
dojo-release-1.7.4-src/util/buildscripts/build.sh --release --profile test.profile.js

我已经使用 Dojo 1.7.4(最新的 1.7 版本)对上述构建配置文件进行了尝试,并使用以下测试页面按预期工作,无需再次下载模块。
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script type="text/javascript" data-dojo-config="async:0" src="./dojotk/dojo/dojo.js">/*empty*/</script>
<script type="text/javascript">
// load the custom layer
dojo.ready(function() { dojo.require('dojo.custom_dojo') });;

// to be called on button click
function myFun() {
var ifr = dojo.require('dojo.io.iframe');
// check module has been loaded
if (ifr) {
alert('success: '+ifr);
};
return false;
}
</script>
</head>
<body>
<input type="button" value="click" onclick="return myFun();" />
</body>
</html>

引用文献
确实,我必须以艰难的方式学习这一点,因为文档不太容易阅读,并且 Dojo 源中的示例使用新旧构建配置文件格式的混合,这也无济于事。但是,这些链接非常有用。
  • http://dojotoolkit.org/documentation/tutorials/1.7/build/
  • http://dojotoolkit.org/reference-guide/1.7/build/

  • 享受
    马丁

    关于ant - dojo 发布版本的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15775383/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com