// Type definitions for extract-text-webpack-plugin 3.0 // Project: https://github.com/webpack-contrib/extract-text-webpack-plugin // Definitions by: flying-sheep , kayo // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped import webpack = require('webpack'); export = ExtractTextPlugin; /** * extract-text-webpack-plugin has no support for .options instead of .query yet. * See https://github.com/webpack/extract-text-webpack-plugin/issues/281 */ type Loader = string | webpack.OldLoader | webpack.NewLoader; /** * Use an `ExtractTextPlugin` instance and a loader returned by `extract` in concert to write files to disk instead of loading them into others. * Usage example at https://github.com/webpack/extract-text-webpack-plugin#usage-example-with-css */ declare class ExtractTextPlugin extends webpack.Plugin { /** Create a plugin instance defining the extraction target file(s) for the files loaded by `extract` */ constructor(options: string | ExtractTextPlugin.PluginOptions); /** * Creates an extracting loader from an existing loader (static). * Use the resulting loader in `module.rules`/`module.loaders`. * @see {@link https://www.npmjs.com/package/extract-text-webpack-plugin#extract} */ static extract: (loader: Loader | Loader[] | ExtractTextPlugin.LoaderOptions) => Loader[]; /** * Creates an extracting loader from an existing loader (instance). * Use the resulting loader in `module.rules`/`module.loaders`. * @see {@link https://www.npmjs.com/package/extract-text-webpack-plugin#multiple-instances} */ extract: (loader: Loader | Loader[] | ExtractTextPlugin.LoaderOptions) => Loader[]; } declare namespace ExtractTextPlugin { interface PluginOptions { /** the filename of the result file. May contain `[name]`, `[id]` and `[contenthash]` */ filename: string; /** extract from all additional chunks too (by default it extracts only from the initial chunk(s)) */ allChunks?: boolean; /** disables the plugin */ disable?: boolean; /** Unique ident for this plugin instance. (For advanced usage only, by default automatically generated) */ id?: string; } interface LoaderOptions { /** the loader(s) that should be used for converting the resource to a css exporting module */ use: Loader | Loader[]; /** the loader(s) that should be used when the css is not extracted (i.e. in an additional chunk when `allChunks: false`) */ fallback?: Loader | Loader[]; /** override the `publicPath` setting for this loader */ publicPath?: string; } }