У меня есть профиль создания dojo, который создает два слоя - слой dojo/dojo layer layer и еще один слой для моих файлов приложений.Dojo build profile no dojo layer (> 1.7)
Все это прекрасно работает и приводит к двум «большим» файлам (main.js и dojo.js), который содержит весь необходимый код.
Тем не менее, я действительно не хочу создавать слой «dojo/dojo» все время при создании приложения, это занимает много времени (> 100 секунд), и поскольку этот слой действительно сильно не меняется не хотят продолжать его строить.
Проблема в том, что даже с одним слоем «приложение/главная» сборка все еще создает все файлы dojo/dijit/dojox и все еще занимает много времени (я знаю, что мне не нужны эти файлы, но она по-прежнему разбор/оптимизация/сжатие ... всех этих файлов).
Есть ли вообще избежать этого? Мне просто нужна простая небольшая сборка только для моих файлов приложений.
вот мой профиль:
var profile = (function() {
var dojoDeps = ['dojo/dom', 'dojo/i18n', 'dojo/domReady', 'dojo/parser'];
var dojoxDeps = ['dojox/grid/DataGrid', 'dojox/data/JsonRestStore'];
var dijitDeps = ['dijit/form/Form', 'dijit/form/ValidationTextBox', 'dijit/form/Button',
'dijit/layout/BorderContainer'];
var allDojoDeps = [].concat(dojoDeps, dojoxDeps, dijitDeps);
var appDeps = ['app/main', 'app/run'];
return {
basePath: '../../../../dojo/dojo-src',
releaseDir: "../../target/dojo-compiled",
releaseName: "",
action: 'release',
cssOptimize: 'comments',
mini: true,
optimize: 'closure',
layerOptimize: 'closure',
stripConsole: 'normal',
selectorEngine: 'lite',
layers: {
'dojo/dojo': {
include: allDojoDeps,
boot: true
},
'app/main': {
include: appDeps,
exclude: allDojoDeps
}
},
staticHasFeatures: {
'dojo-trace-api': 0,
'dojo-log-api': 0,
'dojo-publish-privates': 0,
'dojo-sync-loader': 0,
'dojo-test-sniff': 0
},
packages: [
{
name: "dojo",
location: "dojo"
},
{
name: "dijit",
location: "dijit"
},
{
name: "dojox",
location: "dojox"
},
{
name: "app",
depsScan:false,
location: "../../src/main/webapp/app"
}
]
};
})();
Packages.com.google.javascript.jscomp.Compiler.setLoggingLevel(Packages.java.util.logging.Level.WARNING);
Большое спасибо! это уменьшило время от ~ 160 до ~ 80-90. Однако я все же думаю, что он должен работать намного быстрее - весь каталог webapp - 48 файлов, занимающих около 61 Кбайт, малость относительности. – user2133807