【发布时间】:2014-09-23 02:58:18
【问题描述】:
我已经设置了一个使用三个dojo 小部件的html 页面,并且我正在尝试使用dojo 1.7.5 从它创建一个自定义构建。构建成功给我留下了一个 dojo.js,其中包含我需要使用此构建文件的文件:
var dependencies = {
action: "release",
selectorEngine: "acme",
stripConsole: "none",
cssOptimize: "comments.keepLines",
layers: [
{
name: "dojo.js",
dependencies: [
"dijit.form.ValidationTextBox",
"dijit.form.DropDownButton",
"dijit.form.Button",
"dijit.form.Form",
"dijit._base",
"dijit._Container",
"dijit._HasDropDown",
"dijit.form.ComboButton",
"dijit.form.ToggleButton",
"dijit.form._ToggleButtonMixin",
"dojo.parser",
"dojo.date.stamp",
"dojo._firebug.firebug"
]
}, {
name: "../test/test.js",
dependencies: [
"test.test"
]
}
],
prefixes: [
[ "dijit", "../dijit" ],
[ "dojox", "../dojox" ],
[ "ourpeople", "../ourpeople" ]
]
};
我似乎找不到答案的问题:
- 我正在使用 cssOptimize,我期望在其中导入所有使用的 css 文件的单个 css 文件。但是我找不到这样的文件。这是dojo压缩它的css的方式还是我的期望是错误的?如果是这样,我可以在我的发布文件夹中的哪里找到它?
- 我的 test.js 包含一个函数 test1(),如果我从我构建的 js 中调用它,它表明 test1 未定义。我直接调用该函数而不使用dojo。我假设构建自定义 js 仅适用于使用声明的 dojo 类?
- 最后一个问题,我需要在构建中手动包含几个 dojo 文件,例如 dojo._firebug.firebug,因为在我初始构建之后,它仍然使用 xhr 调用来获取这些文件。手动包含文件后,我仍然看到从 dojo 到特定资源的 xhr 调用:dojo/nls/dojo_ROOT 和 dijit/form/nls/validate.js。这些文件是在构建过程中创建的,因此不能包含在构建配置文件的依赖项中。任何人都对这个问题有任何想法,因为我希望在单个文件中分发 dojo。
我对 dojo 构建系统相当陌生,并且(尤其是)所以也许我期待 dojo 构建系统并非旨在做的事情,或者如果有任何提示或建议,我可能会以错误的方式解决这个问题非常受欢迎。
干杯!
Test.js:
function test1() {
console.log("test1");
}
索引.php:
<script type="text/javascript" src="js/release/dojo/dojo/dojo.js"></script>
<script type="text/javascript" src="js/release/dojo/test/test.js"></script>
<script type="text/javascript">
dojo.require("dijit.form.ValidationTextBox");
dojo.require("dijit.form.Button");
dojo.require("dijit.form.Form");
dojo.ready(function() {
test1();
});
</script>
【问题讨论】:
标签: javascript dojo dojo-build