Как исключить файлы из системы сборки Dojo?
Я слежу за официальной страницей документации по этой теме, но не могу настроить ее на игнорирование .txt
файлы.
у меня есть all.profile.js
в корне моего проекта:
var profile = (function(){
return {
basePath: "./",
releaseDir: "../web",
action: "release",
layerOptimize: "closure",
optimize: "closure",
cssOptimize: "comments",
mini: true,
stripConsole: "all",
packages: [
{ name: "myapp", location: "myapp" }
]
};
})();
И это package.json
внутри папки myapp
:
{
"dojoBuild": "myapp.profile.js",
"name": "my-app",
"description": "This is My App",
"version": "1.0",
"main": "src"
}
И это myapp.profile.js
также внутри папки myapp
:
var profile = (function(){
return {
// don't need to do anything on the 'test' folder so don't define it on the trees.
trees: [
["libs","libs",/txt$/], // ignore .txt files -> DOESN'T WORK!
["src","src",/txt$/] // ignore .txt files -> DOESN'T WORK!
],
resourceTags: {
test: function(filename, mid){
console.log("[test] filename: ",filename);
return filename.indexOf("test/") !== -1;
},
copyOnly: function(filename, mid){
//console.log("[copyOnly] mid: ",mid);
return false;
},
miniExclude: function (filename, mid) {
console.log("[miniExclude] filename: ",filename);
return mid in {
'myapp/myapp.profile': 1,
'myapp/package.json': 2
} || mid.indexOf(".txt") !== -1; // .txt are not ignored so exclude them...
},
amd: function(filename, mid) {
//console.log("[amd] mid: ",mid);
// myapp is not AMD but this will 'convert' it
return false;
}
}
};
})();
Наконец, это структура папок:
web_dev/
-- myapp/
---- libs/
---- src/
---- test/
---- myapp.profile.js
---- package.json
-- all.profile.js
Инструмент сборки работает нормально, он читает и обрабатывает все файлы, кроме .txt
файлы все еще находятся в выпуске dir.
Пожалуйста, дайте мне знать, если вы обнаружите какие-либо ошибки в моей логике или как я настраиваю систему сборки. Я использую Dojo 1.9.1.
Заранее спасибо.
1 ответ
Я не уверен, что не так с моим первоначальным сценарием, но вот изменения, которые я сделал, чтобы получить желаемый результат:
- Переместить
trees
декларация отmyapp.profile.js
вall.profile.js
внутри определения пакета "myapp". - Вместо указания корня деревьев, проверьте все и исключите соответственно:
[".", ".", /(\/\.)|(~$)|(test|txt)/]
Финал all.profile.js
:
var profile = {
basePath: "./",
releaseDir: "../web",
releaseName: "built",
action: "release",
layerOptimize: "closure",
optimize: "closure",
cssOptimize: "comments",
mini: true,
stripConsole: "all",
packages: [
{
name: "myapp",
location: "myapp",
trees: [
// don't bother with .hidden, tests and txt.
[".", ".", /(\/\.)|(~$)|(test|txt)/]
]
}
]
};
Если кто-то может точно указать, что я делал неправильно, пожалуйста, поделитесь.