A Rollup plugin to lint entry points and all imported files with denolint.
A lot faster than @rollup/plugin-eslint, handling both JavaScript and TypeScript sources. Use esbuild-plugin-denolint for esbuild. Use webpack-loader-denolint for Webpack. Or simpler, just the command-line denolint
.
import { denolint } from 'rollup-plugin-denolint'
export default {
plugins: [denolint()]
// the rest of the configuration
}
Make sure that you use Node.js 14 or newer and Rollup 2 or newer. Use your favourite package manager - NPM, PNPM or Yarn:
npm i -D rollup-plugin-denolint
pnpm i -D rollup-plugin-denolint
yarn add -D rollup-plugin-denolint
Create a rollup.config.js
configuration file and import the plugin:
import { denolint } from 'rollup-plugin-denolint'
export default {
input: 'src/index.js',
output: { file: 'dist/main.js', format: 'iife', sourcemap: true },
plugins: [
denolint({
exclude: ['tests'],
rules: {
exclude: ['no-unused-vars']
}
})
]
}
Then call rollup
either via the command-line or programmatically.
The following options can be passed in an object to the plugin function to change the default values.
Type: string[] | string
Default: ['**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx']
List of source file patterns to include.
Type: string[] string | | regex
Default: /node_modules/
List of source file patterns or a regex to exclude.
Type: string
Default: '.denolint.json'
Config file to load the tag, rule inclusion and exclusion lists from. File inclusion and exclusion lists are ignored. Use include
and exclude
options of this plugin.
Type: boolean
Default: false
Do not look for .denolint.json
by default.
Type: object
Default: undefined
Rules to include or exclude. If specified, the config file will be ignored. See Rules below.
Type: boolean
Default: true
Throw an error and abort if any warnings were reported.
Type: boolean
Default: true
Throw an error and abort if source file parsing failed fatally.
Type: string
Default: 'pretty'
Format of the warning messages. Either compact
or pretty
(default).
Type: boolean
Default: true
Custom warning and error formatter:
(messages: string[], id: string, source: string) => string[]
The following properties are recognised in the rules object.
Type: boolean
Default: false
Use all rules if set to true
, otherwise only the recommended ones.
Type: string[]
Default: []
List of rules to include extra, if only recommended rules are enabled.
Type: string[]
Default: []
List of rules to exclude from all or recommended ones.
Instead of checking the source files as they are processed, you can check all sources, when the bundler starts. It resembles more how the command-line denolint
works and you can reuse the files.include
and files.exclude
configuration from .denolint.json
:
import { denolintAll } from 'rollup-plugin-denolint'
export default {
input: 'src/index.js',
output: { file: 'dist/main.js', format: 'iife', sourcemap: true },
plugins: [
denolintAll()
]
}
Options include
, exclude
, configFile
, format
, formatter
, throwOnWarning
, throwOnError
are recognised. Options include
, exclude
override files.include
and files.exclude
from .denolint.json
and have the same meaning. They are not passed to rollup
.
In lieu of a formal styleguide, take care to maintain the existing coding style. Lint and test your code.
Copyright (C) 2022-2023 Ferdinand Prantl
Licensed under the MIT License.