我真的不知道从哪里开始。
我已经阅读了每篇教程、文章和博客文章,试图让 dojo 能够让它发挥作用,而且我从来没有遇到过这样的问题,至少只是一点点。我发现文档和工作脚本的人之间存在激烈的争吵,但没有任何发布或概述。在 SO,我发现这是一个非常普遍的问题,但有一半的时间没有解决。
免责声明:忘记 1.6。我从来没有用过1.6。因此,我在网上找到的一半资源都是无效的,我的书也是如此。开始了。
问题 1
很多关于使用这种格式的帖子有什么区别:
dependencies = {
stripConsole: "all",
action: "release",
optimize: "shrinksafe",
// Omitted options...
layers: [{
name: "dojo.js",
customBase : true,
dependencies: [
"dojox.gauges.AnalogNeedleIndicator",
"myApp.smartmix"]
}
],
prefixes: [
[ "dijit", "../dijit" ],
[ "dojox", "../dojox" ],
[ "myApp", "../../../myApp" ]
]
};
...与这种格式:
var profile = {
basePath: './',
stripConsole: 'all',
selectorEngine: 'lite',
layers: {
'dojo/dojo': {
include: ['dojo/dojo', 'dojo/domReady', 'dojo/_base/declare'],
boot: true,
customBase: true
},
'dgrid/dgrid': {
include: ["dgrid/List", "dgrid/OnDemandGrid", "dgrid/Selection", "dgrid/Keyboard", "dgrid/test/data/perf"]
}
}
// static-has-features removed
};
两者之间的对象有两个非常重要的区别layers
:A)每个人似乎都只是“知道”,没有任何理由或理性,或 B)人们似乎只是“知道”。我还没有找到关于这两种语法(语法?语法?)之间差异的任何文章,这些差异与新的 AMD 结构和构建系统的重写有关。
我见过的最接近的是对象名称无关紧要,声明也无关紧要。它可以是“全局”变量(省略var
关键字),也可以不是,只要返回的对象包含必要的信息,名称就无关紧要。
第二种格式给了我一个“意外字符串”错误,并且 99% 的时间都失败了,即使是复制/粘贴的配置文件也是如此。
问题2
具体需要什么?!Dojo 的文档说 package.json 和 appName.profile.js 文件是必需的,但在我见过的所有教程中,只需要和使用配置文件。因此,Dojo 的主要网站上有一半关于建筑的信息没有被使用。所以........?
Dojo 网站说要使用该src
版本进行构建。Nabble 的一个人说你必须得到这个svn
版本,因为 src 版本已经“构建”了。
……那么谁先上?
问题 3
profile.js
有没有人,任何人,有一个他们愿意分享的工作目录结构和文件?我已经尝试了一切。我的意思是一切,得到一个构建。一个建议是使用一个空的配置文件对象。这行得通,而且没用。
另一个建议是使用 dojo 样板构建。如果任何更改破坏了模板,它有什么用? 你所尝试的只是一个有争议的问题,正如我所尝试的那样,用 Tony Stark 的话来说,“每个已知 [javascript 对象变体] 的每个排列。没有任何效果。”
我很快就会失去信心。不是因为经过数小时的反复试验我无法弄清楚,而是因为很多人都在同一条船上。下沉了
最后的问题
所以,我的最后一个请求是,有人可以解释一下这个构建系统是如何工作的,而不仅仅是指向在谷歌上可以找到的已经紫色的阅读和重新阅读的链接?
如何...您...配置 Dojo 构建配置文件...并执行它...没有错误?!这个系统的糟糕程度太疯狂了 A) 记录在案和 B) 实施,而我在做的时候 C) 教过。真累。
我访问过的一些(许多)网站:
更新
非常感谢@xesxz 和@Craig Swing。在做了一些小事之后,我得到了一个构建配置文件,它可以提供我需要的东西!