使用两级包路径构建dojo 1.8

时间:2012-08-15 05:14:43

标签: build dojo

我正在尝试使用dojo构建工具来创建类似这样的发布结构:

relDir
  ->dojo
  ->dijit
  ->dojox
  ->mynamespace
     ->package1
     ->package2

在构建配置文件中,我给出了以下指示:

"packages":[
    {
        "name":"dojo",
        "location":"vendor\/dojo\/dojo"
    },
    {
        "name":"dijit",
        "location":"vendor\/dojo\/dijit"
    },
    {
        "name":"dojox",
        "location":"vendor\/dojo\/dojox"
    },
    {
        "name":"mynamespace\/package1",
        "location":"vendor\/mynamespace\/package1"
    },
    {
        "name":"mynamespace\/package2",
        "location":"vendor\/mynamespace\/package2"
    }
]

然而,构建工具似乎不喜欢这两个部分的包名,并吐出一个像这样的目录结构:

relDir
   ->dojo
   ->dijit
   ->dojox
   ->mynamespace
       ->package1
           All package1 copyOnly files
       ->package2
           All package2 copyOnly files
   ->package1
       All package1 js and uncompressed.js files, but all files are empty
   ->package2
       All package2 js and uncompressed.js files, but all files are empty

如果我改变packages::name以删除mynamespace,则没有空的js文件,输出目录结构为:

relDir
   ->dojo
   ->dijit
   ->dojox
   ->package1
   ->package2

如果没有构建工具崩溃,如何将mynamespace目录放入构建的结构中?

1 个答案:

答案 0 :(得分:2)

在深入挖掘源代码后,我找到了解决方案 - 而且很简单。需要在package指令中使用destLocation键。所以:

"packages":[
    {
        "name":"dojo",
        "location":"vendor\/dojo\/dojo"
    },
    {
        "name":"dijit",
        "location":"vendor\/dojo\/dijit"
    },
    {
        "name":"dojox",
        "location":"vendor\/dojo\/dojox"
    },
    {
        "name":"mynamespace\/package1",
        "location":"vendor\/mynamespace\/package1",
        "destLocation": "mynamespace\/package1"
    },
    {
        "name":"mynamespace\/package2",
        "location":"vendor\/mynamespace\/package2",
        "destLocation": "mynamespace\/package2"
    }
]
相关问题