我正在尝试使用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
目录放入构建的结构中?
答案 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"
}
]