123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- 'use strict';
- /**
- * @author Ben Briggs
- * @license MIT
- * @module cssnano:preset:default
- * @overview
- *
- * This default preset for cssnano only includes transforms that make no
- * assumptions about your CSS other than what is passed in. In previous
- * iterations of cssnano, assumptions were made about your CSS which caused
- * output to look different in certain use cases, but not others. These
- * transforms have been moved from the defaults to other presets, to make
- * this preset require only minimal configuration.
- */
- const cssDeclarationSorter = require('css-declaration-sorter');
- const postcssDiscardComments = require('postcss-discard-comments');
- const postcssReduceInitial = require('postcss-reduce-initial');
- const postcssMinifyGradients = require('postcss-minify-gradients');
- const postcssSvgo = require('postcss-svgo');
- const postcssReduceTransforms = require('postcss-reduce-transforms');
- const postcssConvertValues = require('postcss-convert-values');
- const postcssCalc = require('postcss-calc');
- const postcssColormin = require('postcss-colormin');
- const postcssOrderedValues = require('postcss-ordered-values');
- const postcssMinifySelectors = require('postcss-minify-selectors');
- const postcssMinifyParams = require('postcss-minify-params');
- const postcssNormalizeCharset = require('postcss-normalize-charset');
- const postcssMinifyFontValues = require('postcss-minify-font-values');
- const postcssNormalizeUrl = require('postcss-normalize-url');
- const postcssMergeLonghand = require('postcss-merge-longhand');
- const postcssDiscardDuplicates = require('postcss-discard-duplicates');
- const postcssDiscardOverridden = require('postcss-discard-overridden');
- const postcssNormalizeRepeatStyle = require('postcss-normalize-repeat-style');
- const postcssMergeRules = require('postcss-merge-rules');
- const postcssDiscardEmpty = require('postcss-discard-empty');
- const postcssUniqueSelectors = require('postcss-unique-selectors');
- const postcssNormalizeString = require('postcss-normalize-string');
- const postcssNormalizePositions = require('postcss-normalize-positions');
- const postcssNormalizeWhitespace = require('postcss-normalize-whitespace');
- const postcssNormalizeUnicode = require('postcss-normalize-unicode');
- const postcssNormalizeDisplayValues = require('postcss-normalize-display-values');
- const postcssNormalizeTimingFunctions = require('postcss-normalize-timing-functions');
- const { rawCache } = require('cssnano-utils');
- /** @typedef {{
- discardComments?: false | import('postcss-discard-comments').Options & { exclude?: true},
- reduceInitial?: false | { exclude?: true}
- minifyGradients?: false | { exclude?: true}
- svgo?: false | import('postcss-svgo').Options & { exclude?: true},
- reduceTransforms?: false | { exclude?: true}
- convertValues?: false | import('postcss-convert-values').Options & { exclude?: true},
- calc?: false | import('postcss-calc').PostCssCalcOptions & { exclude?: true},
- colormin?: false | Record<string, any> & { exclude?: true},
- orderedValues?: false | { exclude?: true},
- minifySelectors?: false | { exclude?: true},
- minifyParams?: false | { exclude?: true},
- normalizeCharset?: false | import('postcss-normalize-charset').Options & { exclude?: true},
- minifyFontValues?: false | import('postcss-minify-font-values').Options & { exclude?: true},
- normalizeUrl?: false | import('postcss-normalize-url').Options & { exclude?: true},
- mergeLonghand?: false | { exclude?: true},
- discardDuplicates?: false | { exclude?: true},
- discardOverridden?: false | { exclude?: true},
- normalizeRepeatStyle?: false | { exclude?: true},
- mergeRules?: false | { exclude?: true},
- discardEmpty?: false | { exclude?: true},
- uniqueSelectors?: false | { exclude?: true},
- normalizeString?: false | import('postcss-normalize-string').Options & { exclude?: true},
- normalizePositions?: false | { exclude?: true},
- normalizeWhitespace?: false| { exclude?: true},
- normalizeUnicode?: false | { exclude?: true},
- normalizeDisplayValues?: false | { exclude?: true},
- normalizeTimingFunctions?: false | { exclude?: true},
- rawCache?: false | { exclude?: true}}} Options */
- const defaultOpts = {
- convertValues: {
- length: false,
- },
- normalizeCharset: {
- add: false,
- },
- cssDeclarationSorter: {
- keepOverrides: true,
- },
- };
- /**
- * @param {Options} opts
- * @return {{plugins: [import('postcss').PluginCreator<any>, boolean | Record<string, any> | undefined][]}}
- */
- function defaultPreset(opts = {}) {
- const options = Object.assign({}, defaultOpts, opts);
- /** @type {[import('postcss').PluginCreator<any>, boolean | Record<string, any> | undefined][]} **/
- const plugins = [
- [postcssDiscardComments, options.discardComments],
- [postcssMinifyGradients, options.minifyGradients],
- [postcssReduceInitial, options.reduceInitial],
- [postcssSvgo, options.svgo],
- [postcssNormalizeDisplayValues, options.normalizeDisplayValues],
- [postcssReduceTransforms, options.reduceTransforms],
- [postcssColormin, options.colormin],
- [postcssNormalizeTimingFunctions, options.normalizeTimingFunctions],
- [postcssCalc, options.calc],
- [postcssConvertValues, options.convertValues],
- [postcssOrderedValues, options.orderedValues],
- [postcssMinifySelectors, options.minifySelectors],
- [postcssMinifyParams, options.minifyParams],
- [postcssNormalizeCharset, options.normalizeCharset],
- [postcssDiscardOverridden, options.discardOverridden],
- [postcssNormalizeString, options.normalizeString],
- [postcssNormalizeUnicode, options.normalizeUnicode],
- [postcssMinifyFontValues, options.minifyFontValues],
- [postcssNormalizeUrl, options.normalizeUrl],
- [postcssNormalizeRepeatStyle, options.normalizeRepeatStyle],
- [postcssNormalizePositions, options.normalizePositions],
- [postcssNormalizeWhitespace, options.normalizeWhitespace],
- [postcssMergeLonghand, options.mergeLonghand],
- [postcssDiscardDuplicates, options.discardDuplicates],
- [postcssMergeRules, options.mergeRules],
- [postcssDiscardEmpty, options.discardEmpty],
- [postcssUniqueSelectors, options.uniqueSelectors],
- [cssDeclarationSorter, options.cssDeclarationSorter],
- [rawCache, options.rawCache],
- ];
- return { plugins };
- }
- module.exports = defaultPreset;
|