# What changed in less-loader

> 46 changes in less-loader 5 to 13 from its official release notes, upgrade guides and advisories: 23 breaking, 1 deprecations, 10 new APIs and options. Each one cited. Sources checked 2026-10-27. HTML: https://unstale.sh/npm/less-loader/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## less-loader 13

### Breaking changes

- The option now defaults to true, emitting Less warnings and errors as webpack warnings and errors; set it to false to restore silent logging. (13.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v13.0.0)
- The minimum supported Node.js version is now >= 22.11.0. (13.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v13.0.0)

### New APIs and options

- The package now ships native ESM as well as CommonJS, with an exports map exposing separate entry points for import and require. (13.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v13.0.0)

### Behavior and default changes

- Imports from a data: resource are resolved from the loader's context. (13.1.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v13.1.0)
- Files loaded synchronously by Less, including through data-uri() and custom functions installed via @plugin, are tracked as webpack file dependencies. (13.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v13.0.0)

### Tooling

- Types have been added for the package. (13.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v13.0.0)

## less-loader 12

### Breaking changes

- Reverts the ESM dynamic import; the notes do not specify further details. (12.3.3) — [release notes](https://github.com/webpack/less-loader/releases/tag/v12.3.3)
- The peer dependency was updated for @rspack/core v2, affecting package compatibility. (12.3.1) — [release notes](https://github.com/webpack/less-loader/releases/tag/v12.3.1)
- The minimum supported Node.js version is now 18.12.0. (12.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v12.0.0)

### Fixes and other changes

- Fixed compatibility with ECMA modules less version. (12.3.2) — [release notes](https://github.com/webpack/less-loader/releases/tag/v12.3.2)

## less-loader 11

### Breaking changes

- The minimum supported Node.js version is now 14.15.0. (11.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v11.0.0)

## less-loader 10

### Breaking changes

- Removed; use pluginManager.webpackLoaderContext instead. (10.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v10.0.0)

### Performance

- Fixed memory usage. (10.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v10.0.0)

## less-loader 9

### Breaking changes

- The minimum supported Node.js version is now 12.13.0. (9.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v9.0.0)

## less-loader 8

### Breaking changes

- The loader first resolves @import as relative; if that fails, it resolves it inside node_modules. (8.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v8.0.0)
- The minimum supported webpack version is 5. (8.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v8.0.0)

### Deprecations

- Using ~ is deprecated and can be removed from imports, though it remains supported for historical reasons. (8.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v8.0.0)

### New APIs and options

- The loader supports webpack's resolve.byDependency option for configuring resolution by dependency type, including Less-specific mainFiles. (8.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v8.0.0)

## less-loader 7

### Breaking changes

- The appendData option was removed in favor of additionaldata. (7.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v7.0.0)
- The implementation option was removed. (7.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v7.0.0)
- less moved to peerDependencies, so developers must provide the Less implementation as a peer dependency. (7.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v7.0.0)
- The prependData option was removed in favor of additionaldata. (7.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v7.0.0)

### New APIs and options

- The additionaldata option was added as the replacement for prependData and appendData. (7.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v7.0.0)
- Loader context was added in Less plugins. (7.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v7.0.0)
- A webpackImporter option was added. (7.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v7.0.0)

## less-loader 6

### Breaking changes

- Imports are resolved first with the Less resolver, then with the webpack resolver. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)
- Less version 2 is no longer supported. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)
- Less version 3 is used by default, so developers no longer need to add less to package.json. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)
- Less-specific options move to the lessOptions option. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)
- The minimum supported Node.js version is 10.13. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)
- The minimum supported webpack version is 4. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)

### New APIs and options

- The appendData option is added. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)
- Packages can now use an index.less file. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)
- The loader now supports the less field in package.json. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)
- The loader now supports the style field in package.json. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)
- The prependData option is added. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)

### Behavior and default changes

- Import aliases without a tilde are supported. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)
- lessOptions can now be a function. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)

### Tooling

- webpack 5 is supported. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)

### Fixes and other changes

- Resolution is fixed for package-file imports using either the package path or a relative package path. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)
- The paths option now works with the webpack resolver. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)
- The loader no longer crashes on remote imports. (6.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v6.0.0)

## less-loader 5

### Breaking changes

- The deprecated compress option was removed. (5.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v5.0.0)
- Support for Node.js versions below 6.9 was dropped. (5.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v5.0.0)
- Support for webpack versions below 4 was dropped. (5.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v5.0.0)

### Fixes and other changes

- Webpack watching now recovers after broken Less is fixed. (5.0.0) — [release notes](https://github.com/webpack/less-loader/releases/tag/v5.0.0)
