簡體   English   中英

Dojo構建系統不知道如何處理我的配置中的“ paths”屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM