diff --git a/.gitignore b/.gitignore index bc4f57a7..5c45b95b 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ npm-debug.log* /coverage /dist /test/js +/test/outputs /local /reports /node_modules diff --git a/src/index.js b/src/index.js index 182f3ad7..e6d6640a 100644 --- a/src/index.js +++ b/src/index.js @@ -1,14 +1,16 @@ /* eslint-disable class-methods-use-this */ import webpack from 'webpack'; -import sources from 'webpack-sources'; - import validateOptions from 'schema-utils'; import CssDependency from './CssDependency'; import schema from './plugin-options.json'; -const { ConcatSource, SourceMapSource, OriginalSource } = sources; +// webpack 5 exposes the sources property to ensure the right version of webpack-sources is used +const { ConcatSource, SourceMapSource, OriginalSource } = + // eslint-disable-next-line global-require + webpack.sources || require('webpack-sources'); + const { Template, util: { createHash }, diff --git a/test/TestCases.test.js b/test/TestCases.test.js index 246a792c..2dc77af2 100644 --- a/test/TestCases.test.js +++ b/test/TestCases.test.js @@ -1,3 +1,7 @@ +/** + * @jest-environment node + */ + import fs from 'fs'; import path from 'path'; diff --git a/test/cases/contenthash/expected/webpack-5/1.main.d229600830e975496c76.css b/test/cases/cache/expected/main.css similarity index 100% rename from test/cases/contenthash/expected/webpack-5/1.main.d229600830e975496c76.css rename to test/cases/cache/expected/main.css diff --git a/test/cases/cache/index.js b/test/cases/cache/index.js new file mode 100644 index 00000000..aa3357bf --- /dev/null +++ b/test/cases/cache/index.js @@ -0,0 +1 @@ +import './style.css'; diff --git a/test/cases/cache/style.css b/test/cases/cache/style.css new file mode 100644 index 00000000..67ce83e4 --- /dev/null +++ b/test/cases/cache/style.css @@ -0,0 +1,3 @@ +body { + background: red; +} diff --git a/test/cases/cache/webpack.config.js b/test/cases/cache/webpack.config.js new file mode 100644 index 00000000..7303146a --- /dev/null +++ b/test/cases/cache/webpack.config.js @@ -0,0 +1,33 @@ +import path from 'path'; + +import del from 'del'; + +import Self from '../../../src'; + +const fileSystemCacheDirectory = path.resolve( + __dirname, + '../../outputs/cache/type-filesystem' +); + +del.sync(fileSystemCacheDirectory); + +module.exports = { + entry: './index.js', + cache: { + type: 'filesystem', + cacheDirectory: fileSystemCacheDirectory, + }, + module: { + rules: [ + { + test: /\.css$/, + use: [Self.loader, 'css-loader'], + }, + ], + }, + plugins: [ + new Self({ + filename: '[name].css', + }), + ], +}; diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-5/4142dd862d1c904808b1.css b/test/cases/contenthash-multiple-entries/expected/webpack-5/0f36361d4b50faed4928.css similarity index 100% rename from test/cases/contenthash-multiple-entries/expected/webpack-5/4142dd862d1c904808b1.css rename to test/cases/contenthash-multiple-entries/expected/webpack-5/0f36361d4b50faed4928.css diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-5/79a7e1831f7f75662492.css b/test/cases/contenthash-multiple-entries/expected/webpack-5/35dbeb8e6cb82c82c80c.css similarity index 100% rename from test/cases/contenthash-multiple-entries/expected/webpack-5/79a7e1831f7f75662492.css rename to test/cases/contenthash-multiple-entries/expected/webpack-5/35dbeb8e6cb82c82c80c.css diff --git a/test/cases/contenthash/expected/webpack-5/1.main.6521a335718b303aa5f2.css b/test/cases/contenthash/expected/webpack-5/1.main.6521a335718b303aa5f2.css new file mode 100644 index 00000000..cebc5c1c --- /dev/null +++ b/test/cases/contenthash/expected/webpack-5/1.main.6521a335718b303aa5f2.css @@ -0,0 +1,4 @@ +body { + background: red; +} + diff --git a/test/cases/contenthash/expected/webpack-5/2.main.9ec449318971cd8286d6.css b/test/cases/contenthash/expected/webpack-5/2.main.7a77891ac7cc86d3d7b7.css similarity index 100% rename from test/cases/contenthash/expected/webpack-5/2.main.9ec449318971cd8286d6.css rename to test/cases/contenthash/expected/webpack-5/2.main.7a77891ac7cc86d3d7b7.css diff --git a/test/cases/js-hash/expected/webpack-5/style.0cf46bc14c48177dafbd.1.css b/test/cases/js-hash/expected/webpack-5/style.4f0aa841b4118672e0bb.1.css similarity index 100% rename from test/cases/js-hash/expected/webpack-5/style.0cf46bc14c48177dafbd.1.css rename to test/cases/js-hash/expected/webpack-5/style.4f0aa841b4118672e0bb.1.css diff --git a/test/cases/js-hash/expected/webpack-5/style.be9f170641b100c5282b.2.css b/test/cases/js-hash/expected/webpack-5/style.e1a3bf1ea392f574ca3d.2.css similarity index 100% rename from test/cases/js-hash/expected/webpack-5/style.be9f170641b100c5282b.2.css rename to test/cases/js-hash/expected/webpack-5/style.e1a3bf1ea392f574ca3d.2.css