WebOptimizer icon indicating copy to clipboard operation
WebOptimizer copied to clipboard

.NET 7: Development environmet disable bundling not working

Open heimzza opened this issue 1 year ago • 2 comments

This is how i use in program.cs

builder.Services.AddWebOptimizer(pipeline =>
    {
        pipeline.AddCssBundle("~/Content/styles/css",
                              "Content/styles/vendor.css",
                              "Content/styles/main.css",
                              "Content/styles/widget-menu.css",
                              "Content/styles/launcher.css");
    
        pipeline.AddJavaScriptBundle("~/Content/scripts/js",
                                     "Content/scripts/vendor/modernizr.js",
                                     "Content/scripts/vendor.js",
                                     "Content/scripts/plugins/inputMask.js",
                                     "Content/scripts/plugins/timeago/jquery.timeago.js",
                                     "Content/scripts/LanguageData.js",
                                     "Content/scripts/languageHelper.js",
                                     "Content/scripts/vendor/domPurify/purify.js",
                                     "Sdk/SocketConnection.js",
                                     "Content/scripts/main.js");
    
        pipeline.AddJavaScriptBundle("~/Content/scripts/js_noemoji",
                                     "Content/scripts/vendor/modernizr.js",
                                     "Content/scripts/vendor.noemoji.min.js",
                                     "Content/scripts/plugins/inputMask.js",
                                     "Content/scripts/plugins/timeago/jquery.timeago.js",
                                     "Content/scripts/LanguageData.js",
                                     "Content/scripts/languageHelper.js",
                                     "Content/scripts/vendor/domPurify/purify.js",
                                     "Sdk/SocketConnection.js",
                                     "Content/scripts/main.js");
    },
    option =>
    {
        option.EnableCaching = true;
        option.EnableDiskCache = false;
        option.EnableMemoryCache = true;
        option.AllowEmptyBundle = true;
    });

if (builder.Environment.IsDevelopment())
{
    builder.Services.AddWebOptimizer(minifyJavaScript: false, minifyCss: false);
}

and in app.use section

app.UseCors(builder => builder.AllowAnyOrigin());

app.UseHttpsRedirection();

app.UseWebOptimizer();

app.UseStaticFiles();

app.UseSession();

It is still bundling and minifying the javasxript files. Even if i do rebuild it does not change.

Can you help me please?

heimzza avatar Nov 24 '23 12:11 heimzza

I got it working by doing the following changes:

Remove:

if (builder.Environment.IsDevelopment()) { builder.Services.AddWebOptimizer(minifyJavaScript: false, minifyCss: false); }

Add:

option.EnableTagHelperBundling = !builder.Environment.IsDevelopment();

osjoberg avatar Jan 31 '24 12:01 osjoberg

That solution did not even work for me as I not use any bundling.

I had

builder.Services.AddWebOptimizer(pipeline => {
        pipeline.MinifyJsFiles("js/site.js", "js/site_tagify.js", "lib/jquery-unobtrusive-ajax/jquery.unobtrusive-ajax.js");
        pipeline.MinifyCssFiles("css/site.css", "css/dark.css", "css/backdrop.css");
});
        
if (builder.Environment.IsDevelopment())
{
    builder.Services.AddWebOptimizer(minifyCss: false, minifyJavaScript: false);
}

with some experimenting after finding this thread changed it to:

builder.Services.AddWebOptimizer(minifyCss: !builder.Environment.IsDevelopment(), minifyJavaScript: !builder.Environment.IsDevelopment());

builder.Services.AddWebOptimizer(pipeline => {
        pipeline.MinifyJsFiles("js/site.js", "js/site_tagify.js", "lib/jquery-unobtrusive-ajax/jquery.unobtrusive-ajax.js");
        pipeline.MinifyCssFiles("css/site.css", "css/dark.css", "css/backdrop.css");
    }
);

Which seems to work ... Looks like the order of appearance is important.

barts2108 avatar Mar 14 '24 09:03 barts2108