Dojo 1.7 custom build - Как удалить неиспользуемые файлы из папки релиза
Я использовал приведенный ниже (1.7) пользовательский профиль сборки для создания своей папки выпуска.
var profile = {
basePath: "..",
action: "release",
cssOptimize: "comments",
mini: true,
optimize: "closure",
layerOptimize: "closure",
stripConsole: "all",
selectorEngine: "acme",
packages:[
{
name: "dojo",
location: "./../../dojo"
},
{
name: "dijit",
location: "./../../dijit"
},
{
name: "dojox",
location: "./../../dojox"
}
],
layers: {
"dojo/dojo": {
include: [
"dojo/dojo",
"dijit/form/Button",
"dojox/form/TimeSpinner"
],
customBase: true,
boot: true
}
},
resourceTags: {
amd: function (filename, mid) {
return /\.js$/.test(filename);
}
} };
В моем веб-приложении я использую только два компонента: один - это кнопка из пакета "dijit", а другой - "TimeSpinner" из "dojox". Итак, я включил эти два компонента в файл dojo/dojo.js, он работает, как я и ожидал.
Но папка релиза содержит папки "dojo", "dijit" и "dojox" с большим количеством файлов.
Большинство компонентов не используются в моем веб-приложении, но их файлы находятся в папке выпуска. Даже если они не будут загружены в браузер (из-за AMD), я не хочу, чтобы такие файлы были в моей папке выпуска.
Нет необходимости поддерживать такое огромное количество файлов в моей подрывной деятельности.
Итак, мои вопросы ниже:
- Как удалить файлы ".uncompressed.js" из папки выпуска?
- Как удалить файлы, CSS, шаблоны неиспользуемых компонентов из папки релиза?
Пожалуйста, помогите мне...
2 ответа
Вы можете добавить следующие строки внизу build.sh
find . -type f -name '*.uncompressed.js' -print0 | xargs -0 rm -rdf
find . -type f -name '*.consoleStripped.js' -print0 | xargs -0 rm -rdf
Утилита сборки dojo не предназначена для разделения подмножества файлов и не имеет конфигурации для этого.
Компоновщик выполняет сжатие, упаковывает устаревшие модули в объявления в стиле amd и объединяет слои в режиме загрузки кэшированных модулей.
Это означает, что после того, как вы создадите слой dojo / dojo, customBase (это очень сложная настройка, к тому же осторожная в использовании), создается дерево зависимостей. Дерево зависимостей представляет собой список файлов, каждый из которых сжимается и накладывается вместе, как показано ниже;
// file: dojo/dojo.js
declare(
{cache:
{
"moduleDep_1": dojo.cache("moduleDep_1", {}),
"moduleDep_2": dojo.cache("modu...", .. )
}, "dojo/dojo", null, {
dojo/dojo here
});
Что если у вашего посетителя есть базовая зависимость, которую вы оставили?
В любом случае, более старая утилита сборки имела функциональный список зависимостей, которого нет в утилите сборки 1.7. Это бы вас "спасло":)
Если вы на 100% уверены, что единственный файл, который вам нужен, это ваш файл слоя - почему бы просто не загрузить этот единственный файл в ваш веб-отель?