BundlerMinifier.Core.Tool 7.0.3

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global BundlerMinifier.Core.Tool --version 7.0.3                
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local BundlerMinifier.Core.Tool --version 7.0.3                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=BundlerMinifier.Core.Tool&version=7.0.3                
nuke :add-package BundlerMinifier.Core.Tool --version 7.0.3                

Bundler and Minifier

Nuget

A .NET Core tool that let's you configure bundling and minification of JS, CSS and HTML files. This is a simplified fork of https://github.com/madskristensen/BundlerMinifier that is kept more up-to-date with NUglify and implements some missing features. It has been repackaged into a .NET Core tool.

GitHub actions have been setup such that new NuGet releases of NUglify will automatically trigger a release and publish of this tool with an incremented version number, so this tool should track NUglify fairly closely. Enjoy! 👍

Install it by running dotnet tool install BundlerMinifier.Core.Tool Invoke it by calling dotnet tool run bundle.


Features

  • Bundles CSS, JavaScript or HTML files into a single output file
  • Support for globbing patterns
  • Minify individual or bundled CSS, JavaScript and HTML files
  • Minification options for each language is customizable
  • Command line support
  • Shortcut to update all bundles in solution
  • Suppress output file generation
  • Support NUglify killSwitch and ignoreErrorList directives for each bundle.
  • A bundle can refer to the output file path of another bundle to include its input files (supports recursion).
  • Bundles are processed in parallel for a faster build.

A note about encoding

All files without a BOM (Byte Order Mark) is treated as UTF-8. If you see strange characters in the output bundle files, you may want to consider saving the input files as UTF-8 or an encoding that lets you specify a BOM.

bundleconfig.json

Create a bundleconfig.json file at the root of the project which is used to configure all bundling.

Here's an example of what that file looks like:

[
  {
    "outputFileName": "output/bundle.css",
    "inputFiles": [
      "css/lib/**/*.css", // globbing patterns are supported
      "css/input/site.css"
    ],
    "minify": {
        "enabled": true,
        "commentMode": "all",
        "renameLocals": true,
        "ignoreErrorList": "JS1292,JS1315",
        "gzip": true
    }
  },
  {
    "outputFileName": "output/all.js",
    "inputFiles": [
      "js/*.js",
      "!js/ignore.js" // start with a ! to exclude files
    ]
  },
  {
    "outputFileName": "output/app.js",
    "inputFiles": [
      "input/main.js",
      "input/core/*.js" // all .js files in input/core/
    ]
  }
]

There are some additional values that are possible in the minify section, see src/BundlerMinifier.Core/Minify/JavaScriptOptions.cs and src/BundlerMinifier.Core/Minify/CssOptions.cs for the complete list.

Contribute

Check out the contribution guidelines if you want to contribute to this project.

License

Apache 2.0

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
7.5.2 280 11/4/2024
7.5.1 3,848 6/25/2024
7.4.1 131 6/24/2024
7.4.0 148 6/21/2024
7.1.2 320 6/11/2024
7.1.1 1,174 4/24/2024
7.1.0 1,824 2/28/2024
7.0.3 9,920 2/5/2024
7.0.2 142 2/4/2024
7.0.1 1,487 12/16/2023
7.0.0 3,242 11/14/2023
6.1.1 1,508 10/6/2023
6.1.0 4,950 7/10/2023
6.0.2 157 7/9/2023
6.0.1 186 7/9/2023
6.0.0 220 7/9/2023
5.0.8 1,222 6/5/2023
5.0.4 2,039 5/11/2023
5.0.3 934 4/4/2023
5.0.2 2,130 1/26/2023
5.0.1 999 12/13/2022
5.0.0 376 12/11/2022
4.5.17 843 11/23/2022
4.5.16 6,911 7/21/2022
4.5.15 9,084 4/8/2022
4.5.14 456 4/1/2022
4.5.13 503 3/30/2022
4.5.12 1,607 3/16/2022
4.5.11 426 3/16/2022
4.5.10 537 3/8/2022
4.5.9 419 3/8/2022
4.5.8 3,140 1/24/2022
4.5.7 1,293 1/14/2022
4.5.6 457 1/14/2022
4.5.5 2,246 1/13/2022
4.5.4 470 1/10/2022
4.5.3 527 12/17/2021
4.5.2 3,568 12/14/2021
4.5.1 287 12/14/2021
4.5.0 1,119 11/29/2021
4.4.12 1,121 11/21/2021
4.4.11 1,069 10/8/2021
4.4.9 376 10/5/2021
4.4.8 1,749 9/1/2021
4.4.6 499 8/22/2021
4.4.5 348 8/20/2021
4.4.4 428 8/18/2021
4.4.3 1,802 8/14/2021
4.4.2 352 8/13/2021
4.4.1 368 8/11/2021
4.4.0 336 8/4/2021
4.3.2 505 7/25/2021
4.3.1 429 7/24/2021
4.3.0 3,983 5/2/2021
4.2.0 473 3/21/2021
4.1.1 583 12/31/2020
4.1.0 399 12/29/2020
4.0.0 484 12/28/2020