BBundleConfig - Esempi
Rigenerazione condizionale di un bundle
using B.BConfigurations;
using B.BStatics;
using B.BUtility;
string bundleDirectory = @"C:\Web\Theme";
string configFile = BSystem.CreatePathFile(bundleDirectory, "BMinify.b");
BMinifier minifier = new BMinifier(bundleDirectory, escludeMinFile: true)
{
MergeFile = true,
MergeFileNameJS = "theme-min.js",
MergeFileNameCSS = "theme-min.css"
};
BBundleConfig? config = BBundleConfig.CreateInstance(configFile);
if (config == null)
{
throw new InvalidOperationException("Configurazione bundle non disponibile.");
}
if (config.IsNothing || config.CheckUpdate(minifier))
{
if (minifier.Minify(true))
{
config.LoadFromMin(minifier);
config.Update();
}
}
Questo è il flusso adottato dai componenti web B-Arts: caricare la configurazione, confrontare nome e data di modifica dei file sorgenti, rigenerare il bundle soltanto quando necessario e infine salvare il nuovo stato.
Significato dei metodi
CreateInstancecarica il file tramite il ciclo di vita diBBaseSetting; se non esiste applicaMappingDataDefault.CheckUpdaterestituiscetruequando un file JavaScript o CSS manca dalla configurazione oppure ha una data di modifica diversa.LoadFromMinricostruisce gli elenchi dei file e incrementa le versioni JavaScript e CSS.Update, ereditato daBBaseSetting, salva la configurazione aggiornata.FindFilericerca un file per nome nell'elenco delle versioni.
