我已经设置了一个使用三个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构建系统不是为了做的事情,或者如果任何提示或建议不仅仅是欢迎。
干杯!
测试.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>