Example #1
0
 public AbpBundlingOptions()
 {
     StyleBundles             = new BundleConfigurationCollection();
     ScriptBundles            = new BundleConfigurationCollection();
     MinificationIgnoredFiles = new HashSet <string>();
     DeferScriptsByDefault    = false;
     DeferScripts             = new List <string>();
     PreloadStylesByDefault   = false;
     PreloadStyles            = new List <string>();
 }
Example #2
0
    protected virtual List <IBundleContributor> GetContributors(BundleConfigurationCollection bundles, string bundleName)
    {
        var contributors = new List <IBundleContributor>();

        AddContributorsWithBaseBundles(contributors, bundles, bundleName);

        for (var i = 0; i < contributors.Count; ++i)
        {
            var extensions = ContributorOptions.Extensions(contributors[i].GetType()).GetAll();
            if (extensions.Count > 0)
            {
                contributors.InsertRange(i + 1, extensions);
                i += extensions.Count;
            }
        }

        return(contributors);
    }
Example #3
0
    protected virtual async Task <IReadOnlyList <string> > GetBundleFilesAsync(BundleConfigurationCollection bundles, string bundleName, IBundler bundler)
    {
        var contributors     = GetContributors(bundles, bundleName);
        var bundleFiles      = RequestResources.TryAdd(await GetBundleFilesAsync(contributors));
        var dynamicResources = RequestResources.TryAdd(await GetDynamicResourcesAsync(contributors));

        if (!IsBundlingEnabled())
        {
            return(bundleFiles.Union(dynamicResources).ToImmutableList());
        }

        var bundleRelativePath =
            Options.BundleFolderName.EnsureEndsWith('/') +
            bundleName + "." + bundleFiles.JoinAsString("|").ToMd5() + "." + bundler.FileExtension;

        var cacheItem = BundleCache.GetOrAdd(bundleRelativePath, () =>
        {
            var cacheValue = new BundleCacheItem(
                new List <string>
            {
                "/" + bundleRelativePath
            }
                );

            WatchChanges(cacheValue, bundleFiles, bundleRelativePath);

            var bundleResult = bundler.Bundle(
                new BundlerContext(
                    bundleRelativePath,
                    bundleFiles,
                    IsMinficationEnabled()
                    )
                );

            SaveBundleResult(bundleRelativePath, bundleResult);

            return(cacheValue);
        });

        return(cacheItem.Files.Union(dynamicResources).ToImmutableList());
    }
Example #4
0
 public AbpBundlingOptions()
 {
     StyleBundles  = new BundleConfigurationCollection();
     ScriptBundles = new BundleConfigurationCollection();
 }
Example #5
0
    protected virtual void AddContributorsWithBaseBundles(List <IBundleContributor> contributors, BundleConfigurationCollection bundles, string bundleName)
    {
        var bundleConfiguration = bundles.Get(bundleName);

        foreach (var baseBundleName in bundleConfiguration.BaseBundles)
        {
            AddContributorsWithBaseBundles(contributors, bundles, baseBundleName); //Recursive call
        }

        var selfContributors = bundleConfiguration.Contributors.GetAll();

        if (selfContributors.Any())
        {
            contributors.AddRange(selfContributors);
        }
    }