[英]Dojo build system doesn't know what to do with the “paths” property in my config
我的項目具有以下AMD配置:
var amdconfig = {
baseUrl: __AMD_CONFIG_BASE_URL__,
packages: [
{name: "loader", location: "./samples/lib/requirejs"},
{name: "dojo", location: "./samples/lib/dojo"},
{name: "dojox", location: "./samples/lib/dojox"},
{name: "dijit", location: "./samples/lib/dijit"},
{name: "luciad", location: "./luciad"},
{name: "samples", location: "./samples"}
],
cache: {},
paths: {
jquery: "./samples/lib/jquery/jquery-1.12.4",
d3: "./samples/lib/d3/d3",
bloodhound: "./samples/lib/typeahead/bloodhound",
typeahead: "./samples/lib/typeahead/typeahead.jquery"
}
};
對於Dojo構建系統,我具有以下配置:
var profile = {
basePath: __AMD_CONFIG_BASE_URL__,
releaseDir: "release",
action: "release",
stripConsole: "all",
optimize: "closure",
layerOptimize: "closure",
selectorEngine: "acme",
async: 1,
packages: [{
name: "loader",
location: "./samples/lib/requirejs",
destLocation: "./samples/lib/requirejs"
}, {
name: "dojo",
location: "./samples/lib/dojo",
destLocation: "./samples/lib/dojo"
}, {
name: "dijit",
location: "./samples/lib/dijit",
destLocation: "./samples/lib/dijit"
}, {
name: "dojox",
location: "./samples/lib/dojox",
destLocation: "./samples/lib/dojox"
}, {
name: "luciad",
location: "../../main/javascript/luciad",
destLocation: "./luciad"
}, {
name: "samples",
location: "./samples",
destLocation: "./samples"
}],
paths: {
jquery: "./samples/lib/jquery/jquery-1.12.4",
d3: "./samples/lib/d3/d3",
bloodhound: "./samples/lib/typeahead/bloodhound",
typeahead: "./samples/lib/typeahead/typeahead.jquery"
},
layers: {
"samples/lib/requirejs": {
include: [
"samples/lib/requirejs"
],
boot: true
}
}
};
不幸的是,Dojo Build System似乎不知道如何處理路徑:
error(311) Missing dependency. module: samples/trajectories/main; dependency: bloodhound
error(311) Missing dependency. module: samples/trajectories/TimeChart; dependency: d3
error(311) Missing dependency. module: samples/trajectories/TimeChart; dependency: jquery
error(311) Missing dependency. module: samples/trajectories/TypeaheadFilter; dependency: jquery
error(311) Missing dependency. module: samples/trajectories/TypeaheadFilter; dependency: bloodhound
error(311) Missing dependency. module: samples/trajectories/TypeaheadFilter; dependency: typeahead
我怎樣才能解決這個問題?
我嘗試使用files
屬性代替,但是我也無法使用它:
...
files: [
["jquery", "./samples/lib/jquery/jquery-1.12.4.js"],
["d3", "./samples/lib/d3/d3.js"],
["bloodhound", "./samples/lib/typeahead/bloodhound.js"],
["typeahead", "./samples/lib/typeahead/typeahead.jquery.js"]
],
...
我嘗試將它們定義為包,但這也不起作用:
...
{
name: "jquery",
location: "./samples/lib/jquery",
destLocation: "./samples/lib/jquery",
main: "jquery-1.12.4"
}, {
name: "d3",
location: "./samples/lib/d3",
destLocation: "./samples/lib/d3",
main: "d3"
}, {
name: "bloodhound",
location: "./samples/lib/typeahead",
destLocation: "./samples/lib/typeahead",
main: "bloodhound"
}, {
name: "typeahead",
location: "./samples/lib/typeahead",
destLocation: "./samples/lib/typeahead",
main: "typeahead.jquery"
}
...
我想念什么?
我正在使用dojo-util
1.10.4版本。
我遇到了同樣的問題。 從Dojo Build文檔中 :
使用--dojoConfig命令行標志指向包含包含軟件包配置數據的dojoConfig對象的腳本
尚不清楚,但是可以將其視為構建配置文件僅使用軟件包信息,而忽略path變量。
值得慶幸的是,我找到了這篇文章, 該文章解釋了如何在構建配置文件中使用map對象,該對象的行為類似於dojoConfig中的path變量。
因此,根據您的情況,如果要添加
"map": {
"*": {
"jquery": "./samples/lib/jquery/jquery-1.12.4",
"d3": "./samples/lib/d3/d3",
"bloodhound": "./samples/lib/typeahead/bloodhound",
"typeahead": "./samples/lib/typeahead/typeahead.jquery"
}
}
到您的構建配置文件,並將路徑保留在dojoConfig中,一切正常。
由於“ map”和“ paths”的配置重復,因此不確定這是否是最優雅的解決方案,因此,如果有人有更好的解決方案,請回復!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.