jrparish / tslint-webpack-plugin

TSLint plugin for Webpack
MIT License
20 stars 9 forks source link
tslint webpack

tslint-webpack-plugin

npm version [license]()

NPM

Due to TSLint being deprecated, consider using/migrating to @typescript-eslint

This is a webpack plugin that provides a very simple method of running TSLint alongside your webpack builds. This project differs from tslint-loader in that it will lint all specified files instead of only those that are imported by webpack. This is especially useful for interface files that are not always picked up by webpack (due to treeshaking or whatever).

Installation

This plugin also requires TSLint to be installed.

Install the plugin with npm:

$ npm install tslint tslint-webpack-plugin --save-dev

Basic Usage

The plugin will output tslint errors as part of your webpack build process. It will not fail the build, but simply notify you of changes that need to be made. Just add the plugin to your webpack config as follows:

var TSLintPlugin = require('tslint-webpack-plugin');
var webpackConfig = {
  entry: 'index.js',
  output: {
    path: 'dist',
    filename: 'index_bundle.js'
  },
  plugins: [
    new TSLintPlugin({
      files: ['./src/**/*.ts']
    })
  ]
};

Configuration

You can pass a hash of configuration options to TSLintWebpackPlugin.

The basic configuration requires the one of the following:

Use a custom tslint.json config

Disable console output if necessary:

Add the errors and warnings to the webpack compilation result and stats and wait for the linter to finish. This is useful when you create production builds on your build server and you do not want that tslint errors will go to production. Do not set it to true when you use webpack-dev-server because usually incremental builds are much faster than linting for large projects.

Treats all errors as warnings:

The plugin uses a custom formatter by default, but any of the built-in TSLint formatters can be used. (Not supported by v2 and later)

For advanced usage, see the various runner options here.

License

This project is licensed under MIT.