From 31c4cdc4002ae131f8adebbed5d4b529cb3d2a23 Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Wed, 7 Mar 2018 13:12:25 +0100 Subject: [PATCH] Add ident to loaders passed to child compilation add test case how css deduplication works --- src/loader.js | 1 + test/cases/composes-async/async-1.css | 4 +++ test/cases/composes-async/async-2.css | 3 ++ test/cases/composes-async/expected/1.css | 4 +++ test/cases/composes-async/expected/3.css | 4 +++ test/cases/composes-async/index.js | 2 ++ test/cases/composes-async/webpack.config.js | 38 +++++++++++++++++++++ 7 files changed, 56 insertions(+) create mode 100644 test/cases/composes-async/async-1.css create mode 100644 test/cases/composes-async/async-2.css create mode 100644 test/cases/composes-async/expected/1.css create mode 100644 test/cases/composes-async/expected/3.css create mode 100644 test/cases/composes-async/index.js create mode 100644 test/cases/composes-async/webpack.config.js diff --git a/src/loader.js b/src/loader.js index a8f3ac2f..44f7940b 100644 --- a/src/loader.js +++ b/src/loader.js @@ -51,6 +51,7 @@ export function pitch(request) { return ({ loader: loader.path, options: loader.options, + ident: loader.ident, }); }); } diff --git a/test/cases/composes-async/async-1.css b/test/cases/composes-async/async-1.css new file mode 100644 index 00000000..0cd611ac --- /dev/null +++ b/test/cases/composes-async/async-1.css @@ -0,0 +1,4 @@ +:local .base { + composes: composed from './async-2.css'; + background: blue; +} diff --git a/test/cases/composes-async/async-2.css b/test/cases/composes-async/async-2.css new file mode 100644 index 00000000..4cc245e5 --- /dev/null +++ b/test/cases/composes-async/async-2.css @@ -0,0 +1,3 @@ +:local .composed { + background: green; +} diff --git a/test/cases/composes-async/expected/1.css b/test/cases/composes-async/expected/1.css new file mode 100644 index 00000000..2fa9e2cb --- /dev/null +++ b/test/cases/composes-async/expected/1.css @@ -0,0 +1,4 @@ +.base { + background: blue; +} + diff --git a/test/cases/composes-async/expected/3.css b/test/cases/composes-async/expected/3.css new file mode 100644 index 00000000..23f2a9f7 --- /dev/null +++ b/test/cases/composes-async/expected/3.css @@ -0,0 +1,4 @@ +.composed { + background: green; +} + diff --git a/test/cases/composes-async/index.js b/test/cases/composes-async/index.js new file mode 100644 index 00000000..b9f79b90 --- /dev/null +++ b/test/cases/composes-async/index.js @@ -0,0 +1,2 @@ +import('./async-1.css'); +import('./async-2.css'); diff --git a/test/cases/composes-async/webpack.config.js b/test/cases/composes-async/webpack.config.js new file mode 100644 index 00000000..ef38e7f6 --- /dev/null +++ b/test/cases/composes-async/webpack.config.js @@ -0,0 +1,38 @@ +const Self = require('../../../'); + +module.exports = { + entry: './index.js', + module: { + rules: [ + { + test: /\.css$/, + use: [ + Self.loader, + { + loader: 'css-loader', + options: { + localIdentName: '[local]' + } + } + ], + }, + ], + }, + optimization: { + splitChunks: { + cacheGroups: { + cssDedupe: { + test: /\.css$/, + chunks: 'all', + minChunks: 2, + enforce: true + } + } + } + }, + plugins: [ + new Self({ + filename: '[name].css', + }), + ], +};