2021-04-09 21:50:25 +08:00
|
|
|
/** @type {import("../../../../").Configuration} */
|
|
|
|
module.exports = {
|
|
|
|
output: {
|
|
|
|
publicPath: "/public/"
|
|
|
|
},
|
|
|
|
module: {
|
|
|
|
parser: {
|
|
|
|
javascript: {
|
|
|
|
url: "relative"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
generator: {
|
|
|
|
asset: {
|
|
|
|
filename: "assets/[name][ext][query]"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
rules: [
|
|
|
|
{
|
|
|
|
test: /stylesheet\.js$/,
|
|
|
|
use: "./loader",
|
|
|
|
type: "asset/source"
|
2021-04-12 16:51:53 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
test: /\.jpg$/,
|
|
|
|
loader: "file-loader",
|
|
|
|
options: {
|
|
|
|
name: "assets/[name].[ext]"
|
|
|
|
}
|
2021-04-09 21:50:25 +08:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2021-04-12 15:17:43 +08:00
|
|
|
experiments: {
|
|
|
|
executeModule: true
|
|
|
|
},
|
2021-04-09 21:50:25 +08:00
|
|
|
plugins: [
|
|
|
|
compiler =>
|
2021-04-12 16:51:53 +08:00
|
|
|
compiler.hooks.done.tap("test case", stats => {
|
2021-04-09 21:50:25 +08:00
|
|
|
expect(stats.compilation.getAsset("assets/file.png")).toHaveProperty(
|
|
|
|
"info",
|
|
|
|
expect.objectContaining({ sourceFilename: "file.png" })
|
2021-04-12 16:51:53 +08:00
|
|
|
);
|
|
|
|
expect(stats.compilation.getAsset("assets/file.jpg")).toHaveProperty(
|
|
|
|
"info",
|
|
|
|
expect.objectContaining({ sourceFilename: "file.jpg" })
|
|
|
|
);
|
|
|
|
const { auxiliaryFiles } = stats.compilation.namedChunks.get("main");
|
|
|
|
expect(auxiliaryFiles).toContain("assets/file.png");
|
|
|
|
expect(auxiliaryFiles).toContain("assets/file.png?1");
|
|
|
|
expect(auxiliaryFiles).toContain("assets/file.jpg");
|
|
|
|
})
|
2021-04-09 21:50:25 +08:00
|
|
|
]
|
|
|
|
};
|