From 499ef2f8f72bf79e14347d614989c0b61dbe3315 Mon Sep 17 00:00:00 2001 From: clydin Date: Mon, 30 Jan 2017 17:57:27 -0500 Subject: [PATCH] feat(build): minify/optimize component stylesheets (#4259) --- package.json | 2 +- packages/angular-cli/models/webpack-configs/production.ts | 1 - packages/angular-cli/models/webpack-configs/styles.ts | 7 ++++--- packages/angular-cli/package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 8db56b69149e..5fbfacf1a65e 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "chalk": "^1.1.3", "common-tags": "^1.3.1", "css-loader": "^0.26.1", + "cssnano": "^3.10.0", "debug": "^2.1.3", "denodeify": "^1.2.1", "diff": "^2.2.2", @@ -81,7 +82,6 @@ "opn": "4.0.1", "ora": "^0.2.0", "portfinder": "1.0.9", - "postcss-discard-comments": "^2.0.4", "postcss-loader": "^0.9.1", "raw-loader": "^0.5.1", "reflect-metadata": "^0.1.8", diff --git a/packages/angular-cli/models/webpack-configs/production.ts b/packages/angular-cli/models/webpack-configs/production.ts index 0c5a8542c122..5c218d6fcaf5 100644 --- a/packages/angular-cli/models/webpack-configs/production.ts +++ b/packages/angular-cli/models/webpack-configs/production.ts @@ -13,7 +13,6 @@ export const getProdConfig = function (wco: WebpackConfigOptions) { new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify('production') }), - new webpack.LoaderOptionsPlugin({ minimize: true }), new webpack.optimize.UglifyJsPlugin({ mangle: { screw_ie8: true }, compress: { screw_ie8: true, warnings: buildOptions.verbose }, diff --git a/packages/angular-cli/models/webpack-configs/styles.ts b/packages/angular-cli/models/webpack-configs/styles.ts index 0e7661457ded..f90e741b8100 100644 --- a/packages/angular-cli/models/webpack-configs/styles.ts +++ b/packages/angular-cli/models/webpack-configs/styles.ts @@ -6,7 +6,7 @@ import { import { extraEntryParser, getOutputHashFormat } from './utils'; import { WebpackConfigOptions } from '../webpack-config'; -const postcssDiscardComments = require('postcss-discard-comments'); +const cssnano = require('cssnano'); const autoprefixer = require('autoprefixer'); const ExtractTextPlugin = require('extract-text-webpack-plugin'); @@ -38,9 +38,10 @@ export function getStylesConfig(wco: WebpackConfigOptions) { // https://github.com/webpack-contrib/style-loader#recommended-configuration const cssSourceMap = buildOptions.extractCss && buildOptions.sourcemap; - // discard comments in production + // minify/optimize css in production + // autoprefixer is always run separately so disable here const extraPostCssPlugins = buildOptions.target === 'production' - ? [postcssDiscardComments] + ? [cssnano({ safe: true, autoprefixer: false })] : []; // determine hashing format diff --git a/packages/angular-cli/package.json b/packages/angular-cli/package.json index 04b2b086d9e7..0a32704fa072 100644 --- a/packages/angular-cli/package.json +++ b/packages/angular-cli/package.json @@ -38,6 +38,7 @@ "chalk": "^1.1.3", "common-tags": "^1.3.1", "css-loader": "^0.26.1", + "cssnano": "^3.10.0", "debug": "^2.1.3", "denodeify": "^1.2.1", "diff": "^2.2.2", @@ -68,7 +69,6 @@ "opn": "4.0.1", "ora": "^0.2.0", "portfinder": "1.0.9", - "postcss-discard-comments": "^2.0.4", "postcss-loader": "^0.9.1", "raw-loader": "^0.5.1", "remap-istanbul": "^0.6.4",