1.3.19 • Published 3 months ago

esbuild-plugin-less v1.3.19

Weekly downloads
33
License
WTFPL
Repository
github
Last release
3 months ago

esbuild-plugin-less

License: WTFPL TypeScript code style: prettier npm version npm downloads libraries.io FOSSA Status semantic-release

esbuild plugin for LESS files.

Supports all LESS features, including imports, variables, mixins, and more.

Features

  • 💫 Support for all LESS.js features and options
  • 🎨 CSS Modules support with .module.less files
  • 🔄 Watch mode support with automatic rebuilds
  • 🎯 Custom file filtering options
  • 📝 Written in TypeScript

Installation

# Using bun
$ bun add -D esbuild-plugin-less

# Using yarn
$ yarn add -D esbuild-plugin-less

# Using pnpm
$ pnpm add -D esbuild-plugin-less

# Using npm
$ npm install --save-dev esbuild-plugin-less

Basic Usage

import { build } from 'esbuild';
import { lessLoader } from 'esbuild-plugin-less';

build({
  entryPoints: ['src/index.ts'],
  bundle: true,
  outdir: 'dist',
  plugins: [lessLoader()], // That's it!
  loader: {
    '.ts': 'ts',
  },
});

Advanced Configuration

With LESS Options

import { build } from 'esbuild';
import { lessLoader } from 'esbuild-plugin-less';

build({
  entryPoints: ['src/index.ts'],
  bundle: true,
  outdir: 'dist',
  plugins: [
    lessLoader({
      // LESS.js options
      math: 'always',
      globalVars: {
        primaryColor: '#ff0000',
      },
      paths: ['./src/styles'],
      javascriptEnabled: true,
    }),
  ],
});

With Loader Options

import { build } from 'esbuild';
import { lessLoader } from 'esbuild-plugin-less';

build({
  entryPoints: ['src/index.ts'],
  bundle: true,
  outdir: 'dist',
  plugins: [
    lessLoader(
      {}, // LESS options (empty in this example)
      {
        // Loader options
        filter: /\._?less$/, // Custom file filter
        inline: false, // Control if LESS files should be inlined as strings
      },
    ),
  ],
});

CSS Modules Support

The plugin automatically handles .module.less files as CSS Modules. This enables local scoping of styles and generates unique class names.

// styles.module.less
.button {
  color: blue;
}
// Component.ts
import styles from './styles.module.less';
element.className = styles.button; // Will use the generated unique class name

Configuration Options

LESS Options

The plugin accepts all valid options from LESS.js. Here are some commonly used options:

For a complete list of LESS options, see the LESS documentation.

Loader Options

OptionTypeDefaultDescription
filterRegExp/\.less$/Custom filter for processing files
inlinebooleanfalseImport LESS files as strings in TypeScript

License

esbuild-plugin-less is WTFPL licensed.

FOSSA Status

1.3.19

3 months ago

1.3.18

4 months ago

1.3.17

4 months ago

1.3.15

4 months ago

1.3.16

4 months ago

1.3.13

6 months ago

1.3.14

6 months ago

1.3.12

7 months ago

1.3.11

7 months ago

1.3.10

9 months ago

1.3.9

10 months ago

1.3.7

12 months ago

1.3.6

12 months ago

1.3.8

11 months ago

1.3.5

1 year ago

1.3.4

1 year ago

1.3.3

1 year ago

1.3.2

1 year ago

1.3.1

2 years ago

1.3.0

2 years ago

1.2.4

2 years ago

1.2.3

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.2.0

2 years ago

1.1.13

2 years ago

1.1.12

2 years ago

1.1.11

3 years ago

1.1.10

3 years ago

1.1.9

3 years ago

1.1.8

3 years ago

1.1.7

3 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.1

4 years ago

1.1.2

4 years ago

1.1.0

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago

1.0.0

5 years ago