RequireJS Optimizer и VS 2010 Itegration - PullRequest
       16

RequireJS Optimizer и VS 2010 Itegration

5 голосов
/ 21 марта 2012

Мне было интересно, существуют ли какие-либо расширения VS 2010 для запуска оптимизации requirejs, аналогично тому, как работает squishit:

  • В режиме отладки файлы модуля остаются отдельными
  • В режиме выпуска файлы модулей минимизируются и объединяются

1 Ответ

0 голосов
/ 29 августа 2013

Редактировать: Мы используем VS2012, но общий принцип должен работать

Хотя это не является прямым ответом на ваш вопрос, это обходной путь, к которому мы пришли:

Создайте модуль для файлов, которые вы хотите свернуть и связать. Ради обсуждения назовите это base_module.

Создайте script в вашем _layout.cshtml

function requireBaseModulesDebug(func) {
    // In debug mode, just execute the call back directly.
    // Do not load any base modules, require each module to fully state any dependencies.
    func();
}

function requireBaseModulesRelease(func) {
    require(["js_modules/base_module"], func);
}


// Views are always in DEBUG mode, so we have to this this work-around.
@if (HttpContext.Current.IsDebuggingEnabled)
{
    <text>requireBaseModules = requireBaseModulesDebug;</text>
} 
else
{
    <text>requireBaseModules = requireBaseModulesRelease;</text>
}

После того, как этот сценарий создан, вам нужно обернуть все, что будет использовать модуль, подобный этому:

// If you are in DEBUG mode, requireBaseModules won't do anything
// But, if you are in a release mode, then requireBaseModules will load your
// bundled module and have them primed. Any modules required but NOT in your
// base bundle will be loaded normally.
requireBaseModules(function () {
    require(['jQuery'], function ($) {
      // Do Stuff
    });
});
...