ligershark / WebOptimizer

A bundler and minifier for ASP.NET Core
Apache License 2.0
750 stars 113 forks source link

.NET 7: Development environmet disable bundling not working #293

Open heimzza opened 8 months ago

heimzza commented 8 months ago

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?

osjoberg commented 5 months ago

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();

barts2108 commented 4 months ago

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.