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), я не хочу, чтобы такие файлы были в моей папке выпуска.

Нет необходимости поддерживать такое огромное количество файлов в моей подрывной деятельности.

Итак, мои вопросы ниже:

  1. Как удалить файлы ".uncompressed.js" из папки выпуска?
  2. Как удалить файлы, 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% уверены, что единственный файл, который вам нужен, это ваш файл слоя - почему бы просто не загрузить этот единственный файл в ваш веб-отель?

Другие вопросы по тегам