我刚开始构建我的项目,我遇到了一些无法理解为什么会发生的错误。
您可以在下面看到my app.profile.js
文件的内容。我从命令提示符执行
"build profile=../../app.profile.js -r"
此行,并且在该过程完成后我没有收到任何错误。我的问题是,如果我将这些包的发布(构建)版本复制到未构建版本存在的地方,我会收到太多诸如“ Error: multipleDefine
”之类的 javascript 错误。即使我只复制 dojo、dojox 和 dijit 文件夹,同样的错误也会不断发生。
当我查看两个 js 文件的构建和未构建之间的差异时(例如 dojo/Deferred),我意识到的唯一区别是:
//built
define("dojo/Deferred", [
"./_base/lang",
"./promise/CancelError",
"./promise/Promise"
], function(
define([
"./_base/lang",
"./promise/CancelError",
"./promise/Promise"
], function(
所以一开始我有点卡住了。我想尽快尝试使用层来减少 http 请求,但我需要一些关于我提到的情况的帮助。任何帮助将不胜感激,谢谢。
app.profile.js:
var profile = {
basePath: "..",
layerOptimize: "shrinksafe.keepLines",
optimize: "shrinksafe",
releaseDir: "./release",
hasReport: true,
packages: [
{
name: "dojo",
location: "./dojo"
},
{
name: "dijit",
location: "./dijit"
},
{
name: "app",
location: "./app"
},
{
name: "dtk",
location: "./dtk"
},
{
name: "dojox",
location: "./dojox"
}
],
layers: {
"app/layers/core": {
include: [
"dojo/_base/declare",
"dtk/core/ILifeCycle",
"dtk/core/AppConfig",
"dtk/core/TopicContext",
"dtk/core/NavigationContext",
"dojo/require",
"dojo/_base/Deferred",
"dojo/DeferredList",
"dojo/_base/lang"
]
},
"app/layers/appcontext": {
include: [
"dtk/core/AppContext"
],
exclude: [
"app/layers/core"
]
}
}
};