BundlerMinifier.Core.Tool 7.0.0

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.0                
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.0                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=BundlerMinifier.Core.Tool&version=7.0.0                
nuke :add-package BundlerMinifier.Core.Tool --version 7.0.0                

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 284 11/4/2024
7.5.1 3,874 6/25/2024
7.4.1 132 6/24/2024
7.4.0 149 6/21/2024
7.1.2 321 6/11/2024
7.1.1 1,175 4/24/2024
7.1.0 1,825 2/28/2024
7.0.3 9,967 2/5/2024
7.0.2 143 2/4/2024
7.0.1 1,489 12/16/2023
7.0.0 3,243 11/14/2023
6.1.1 1,509 10/6/2023
6.1.0 4,966 7/10/2023
6.0.2 158 7/9/2023
6.0.1 187 7/9/2023
6.0.0 221 7/9/2023
5.0.8 1,223 6/5/2023
5.0.4 2,043 5/11/2023
5.0.3 935 4/4/2023
5.0.2 2,131 1/26/2023
5.0.1 1,000 12/13/2022
5.0.0 377 12/11/2022
4.5.17 844 11/23/2022
4.5.16 6,914 7/21/2022
4.5.15 9,085 4/8/2022
4.5.14 457 4/1/2022
4.5.13 504 3/30/2022
4.5.12 1,608 3/16/2022
4.5.11 427 3/16/2022
4.5.10 538 3/8/2022
4.5.9 420 3/8/2022
4.5.8 3,141 1/24/2022
4.5.7 1,294 1/14/2022
4.5.6 458 1/14/2022
4.5.5 2,257 1/13/2022
4.5.4 471 1/10/2022
4.5.3 528 12/17/2021
4.5.2 3,569 12/14/2021
4.5.1 288 12/14/2021
4.5.0 1,120 11/29/2021
4.4.12 1,122 11/21/2021
4.4.11 1,070 10/8/2021
4.4.9 377 10/5/2021
4.4.8 1,750 9/1/2021
4.4.6 500 8/22/2021
4.4.5 349 8/20/2021
4.4.4 429 8/18/2021
4.4.3 1,803 8/14/2021
4.4.2 353 8/13/2021
4.4.1 369 8/11/2021
4.4.0 337 8/4/2021
4.3.2 506 7/25/2021
4.3.1 430 7/24/2021
4.3.0 3,984 5/2/2021
4.2.0 474 3/21/2021
4.1.1 584 12/31/2020
4.1.0 400 12/29/2020
4.0.0 487 12/28/2020