2019-09-26 21:52:19 +08:00
|
|
|
var MCEP = require("mini-css-extract-plugin");
|
|
|
|
|
|
2021-09-03 15:21:40 +08:00
|
|
|
/** @type {(number, any) => import("../../../../").Configuration} */
|
|
|
|
|
const config = (i, options) => ({
|
2019-09-26 21:52:19 +08:00
|
|
|
entry: {
|
|
|
|
|
a: "./a",
|
|
|
|
|
b: "./b",
|
2021-01-12 00:20:51 +08:00
|
|
|
c: "./c.css",
|
|
|
|
|
x: "./x" // also imports chunk but with different exports
|
2019-09-26 21:52:19 +08:00
|
|
|
},
|
|
|
|
|
output: {
|
2021-09-03 15:21:40 +08:00
|
|
|
filename: `${i}_[name].js`
|
2019-09-26 21:52:19 +08:00
|
|
|
},
|
|
|
|
|
module: {
|
|
|
|
|
rules: [
|
|
|
|
|
{
|
|
|
|
|
test: /\.css$/,
|
|
|
|
|
use: [MCEP.loader, "css-loader"]
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
2021-01-12 00:20:51 +08:00
|
|
|
optimization: {
|
|
|
|
|
chunkIds: "named"
|
|
|
|
|
},
|
2019-09-26 21:52:19 +08:00
|
|
|
target: "web",
|
|
|
|
|
node: {
|
|
|
|
|
__dirname: false
|
|
|
|
|
},
|
2021-01-12 00:20:51 +08:00
|
|
|
plugins: [
|
2021-09-03 15:21:40 +08:00
|
|
|
new MCEP(options),
|
2021-01-12 00:20:51 +08:00
|
|
|
compiler => {
|
|
|
|
|
compiler.hooks.done.tap("Test", stats => {
|
|
|
|
|
const chunkIds = stats
|
|
|
|
|
.toJson({ all: false, chunks: true, ids: true })
|
|
|
|
|
.chunks.map(c => c.id)
|
|
|
|
|
.sort();
|
|
|
|
|
expect(chunkIds).toEqual([
|
|
|
|
|
"a",
|
|
|
|
|
"b",
|
|
|
|
|
"c",
|
|
|
|
|
"chunk_js-_43b60",
|
|
|
|
|
"chunk_js-_43b61",
|
|
|
|
|
"chunk_js-_43b62",
|
|
|
|
|
"d_css",
|
|
|
|
|
"x"
|
|
|
|
|
]);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
]
|
2021-09-03 15:21:40 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
module.exports = [
|
|
|
|
|
config(0),
|
|
|
|
|
config(1, {
|
|
|
|
|
experimentalUseImportModule: true
|
|
|
|
|
})
|
|
|
|
|
];
|