Skip to content

Commit

Permalink
fix: allowed compressed assets to overwrite original assets using the…
Browse files Browse the repository at this point in the history
… `deleteOriginalAssets` option
  • Loading branch information
cap-Bernardito committed Nov 2, 2020
1 parent 61c3bea commit 62d3d0a
Show file tree
Hide file tree
Showing 8 changed files with 415 additions and 24 deletions.
4 changes: 2 additions & 2 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -298,8 +298,6 @@ class CompressionPlugin {
newInfo.immutable = true;
}

CompressionPlugin.emitAsset(compilation, newName, output, newInfo);

if (this.options.deleteOriginalAssets) {
// eslint-disable-next-line no-param-reassign
CompressionPlugin.deleteAsset(compilation, name);
Expand All @@ -317,6 +315,8 @@ class CompressionPlugin {
newOriginalInfo
);
}

CompressionPlugin.emitAsset(compilation, newName, output, newInfo);
})()
);
}
Expand Down
109 changes: 101 additions & 8 deletions test/__snapshots__/deleteOriginalAssets.test.js.snap.webpack4
Original file line number Diff line number Diff line change
@@ -1,14 +1,60 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`"deleteOriginalAssets" option matches snapshot for \`false\` value ({Boolean}): assets 1`] = `
exports[`"deleteOriginalAssets" option should work and delete original assets: assets 1`] = `
Array [
Array [
"09a1a1112c577c2794359715edfcb5ac.png.gz",
73160,
],
Array [
"23fc1d3ac606d117e05a140e0de79806.svg.gz",
393,
],
Array [
"async.async.dcbdb1dd40763448b635.js.gz",
171,
],
Array [
"main.82c6786e32f9c77b44ef.js.gz",
3000,
],
]
`;

exports[`"deleteOriginalAssets" option should work and delete original assets: errors 1`] = `Array []`;

exports[`"deleteOriginalAssets" option should work and delete original assets: warnings 1`] = `Array []`;

exports[`"deleteOriginalAssets" option should work and do not report errors on duplicate assets when original assets were removed: assets 1`] = `
Array [
Array [
"09a1a1112c577c2794359715edfcb5ac.png",
78117,
],
Array [
"09a1a1112c577c2794359715edfcb5ac.png.gz",
73160,
"23fc1d3ac606d117e05a140e0de79806.svg",
393,
],
Array [
"async.async.dcbdb1dd40763448b635.js",
171,
],
Array [
"main.82c6786e32f9c77b44ef.js",
3000,
],
]
`;

exports[`"deleteOriginalAssets" option should work and do not report errors on duplicate assets when original assets were removed: errors 1`] = `Array []`;

exports[`"deleteOriginalAssets" option should work and do not report errors on duplicate assets when original assets were removed: warnings 1`] = `Array []`;

exports[`"deleteOriginalAssets" option should work and keep original assets by default: assets 1`] = `
Array [
Array [
"09a1a1112c577c2794359715edfcb5ac.png",
78117,
],
Array [
"23fc1d3ac606d117e05a140e0de79806.svg",
Expand Down Expand Up @@ -37,31 +83,78 @@ Array [
]
`;

exports[`"deleteOriginalAssets" option matches snapshot for \`false\` value ({Boolean}): errors 1`] = `Array []`;
exports[`"deleteOriginalAssets" option should work and keep original assets by default: errors 1`] = `Array []`;

exports[`"deleteOriginalAssets" option matches snapshot for \`false\` value ({Boolean}): warnings 1`] = `Array []`;
exports[`"deleteOriginalAssets" option should work and keep original assets by default: warnings 1`] = `Array []`;

exports[`"deleteOriginalAssets" option matches snapshot for \`true\` value ({Boolean}): assets 1`] = `
exports[`"deleteOriginalAssets" option should work and keep original assets: assets 1`] = `
Array [
Array [
"09a1a1112c577c2794359715edfcb5ac.png",
78117,
],
Array [
"09a1a1112c577c2794359715edfcb5ac.png.gz",
73160,
],
Array [
"23fc1d3ac606d117e05a140e0de79806.svg",
672,
],
Array [
"23fc1d3ac606d117e05a140e0de79806.svg.gz",
393,
],
Array [
"async.async.dcbdb1dd40763448b635.js",
249,
],
Array [
"async.async.dcbdb1dd40763448b635.js.gz",
171,
],
Array [
"main.82c6786e32f9c77b44ef.js",
11645,
],
Array [
"main.82c6786e32f9c77b44ef.js.gz",
3000,
],
]
`;

exports[`"deleteOriginalAssets" option matches snapshot for \`true\` value ({Boolean}): errors 1`] = `Array []`;
exports[`"deleteOriginalAssets" option should work and keep original assets: errors 1`] = `Array []`;

exports[`"deleteOriginalAssets" option should work and keep original assets: warnings 1`] = `Array []`;

exports[`"deleteOriginalAssets" option should work and report errors on duplicate assets: assets 1`] = `
Array [
Array [
"09a1a1112c577c2794359715edfcb5ac.png",
78117,
],
Array [
"23fc1d3ac606d117e05a140e0de79806.svg",
393,
],
Array [
"async.async.dcbdb1dd40763448b635.js",
171,
],
Array [
"main.82c6786e32f9c77b44ef.js",
3000,
],
]
`;

exports[`"deleteOriginalAssets" option should work and report errors on duplicate assets: errors 1`] = `Array []`;

exports[`"deleteOriginalAssets" option matches snapshot for \`true\` value ({Boolean}): warnings 1`] = `Array []`;
exports[`"deleteOriginalAssets" option should work and report errors on duplicate assets: warnings 1`] = `
Array [
"Error: Conflict: Multiple assets emit different content to the same filename 23fc1d3ac606d117e05a140e0de79806.svg",
"Error: Conflict: Multiple assets emit different content to the same filename async.async.dcbdb1dd40763448b635.js",
"Error: Conflict: Multiple assets emit different content to the same filename main.82c6786e32f9c77b44ef.js",
]
`;
109 changes: 101 additions & 8 deletions test/__snapshots__/deleteOriginalAssets.test.js.snap.webpack5
Original file line number Diff line number Diff line change
@@ -1,14 +1,60 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`"deleteOriginalAssets" option matches snapshot for \`false\` value ({Boolean}): assets 1`] = `
exports[`"deleteOriginalAssets" option should work and delete original assets: assets 1`] = `
Array [
Array [
"09a1a1112c577c2794359715edfcb5ac.png.gz",
73160,
],
Array [
"23fc1d3ac606d117e05a140e0de79806.svg.gz",
393,
],
Array [
"async.async.9325220d444b0d653c03.js.gz",
179,
],
Array [
"main.7cdd8fe3ccdaedc3726c.js.gz",
3933,
],
]
`;

exports[`"deleteOriginalAssets" option should work and delete original assets: errors 1`] = `Array []`;

exports[`"deleteOriginalAssets" option should work and delete original assets: warnings 1`] = `Array []`;

exports[`"deleteOriginalAssets" option should work and do not report errors on duplicate assets when original assets were removed: assets 1`] = `
Array [
Array [
"09a1a1112c577c2794359715edfcb5ac.png",
78117,
],
Array [
"09a1a1112c577c2794359715edfcb5ac.png.gz",
73160,
"23fc1d3ac606d117e05a140e0de79806.svg",
393,
],
Array [
"async.async.9325220d444b0d653c03.js",
179,
],
Array [
"main.7cdd8fe3ccdaedc3726c.js",
3933,
],
]
`;

exports[`"deleteOriginalAssets" option should work and do not report errors on duplicate assets when original assets were removed: errors 1`] = `Array []`;

exports[`"deleteOriginalAssets" option should work and do not report errors on duplicate assets when original assets were removed: warnings 1`] = `Array []`;

exports[`"deleteOriginalAssets" option should work and keep original assets by default: assets 1`] = `
Array [
Array [
"09a1a1112c577c2794359715edfcb5ac.png",
78117,
],
Array [
"23fc1d3ac606d117e05a140e0de79806.svg",
Expand Down Expand Up @@ -37,31 +83,78 @@ Array [
]
`;

exports[`"deleteOriginalAssets" option matches snapshot for \`false\` value ({Boolean}): errors 1`] = `Array []`;
exports[`"deleteOriginalAssets" option should work and keep original assets by default: errors 1`] = `Array []`;

exports[`"deleteOriginalAssets" option matches snapshot for \`false\` value ({Boolean}): warnings 1`] = `Array []`;
exports[`"deleteOriginalAssets" option should work and keep original assets by default: warnings 1`] = `Array []`;

exports[`"deleteOriginalAssets" option matches snapshot for \`true\` value ({Boolean}): assets 1`] = `
exports[`"deleteOriginalAssets" option should work and keep original assets: assets 1`] = `
Array [
Array [
"09a1a1112c577c2794359715edfcb5ac.png",
78117,
],
Array [
"09a1a1112c577c2794359715edfcb5ac.png.gz",
73160,
],
Array [
"23fc1d3ac606d117e05a140e0de79806.svg",
672,
],
Array [
"23fc1d3ac606d117e05a140e0de79806.svg.gz",
393,
],
Array [
"async.async.9325220d444b0d653c03.js",
265,
],
Array [
"async.async.9325220d444b0d653c03.js.gz",
179,
],
Array [
"main.7cdd8fe3ccdaedc3726c.js",
16494,
],
Array [
"main.7cdd8fe3ccdaedc3726c.js.gz",
3933,
],
]
`;

exports[`"deleteOriginalAssets" option matches snapshot for \`true\` value ({Boolean}): errors 1`] = `Array []`;
exports[`"deleteOriginalAssets" option should work and keep original assets: errors 1`] = `Array []`;

exports[`"deleteOriginalAssets" option should work and keep original assets: warnings 1`] = `Array []`;

exports[`"deleteOriginalAssets" option should work and report errors on duplicate assets: assets 1`] = `
Array [
Array [
"09a1a1112c577c2794359715edfcb5ac.png",
78117,
],
Array [
"23fc1d3ac606d117e05a140e0de79806.svg",
393,
],
Array [
"async.async.9325220d444b0d653c03.js",
179,
],
Array [
"main.7cdd8fe3ccdaedc3726c.js",
3933,
],
]
`;

exports[`"deleteOriginalAssets" option should work and report errors on duplicate assets: errors 1`] = `
Array [
"Error: Conflict: Multiple assets emit different content to the same filename 23fc1d3ac606d117e05a140e0de79806.svg",
"Error: Conflict: Multiple assets emit different content to the same filename async.async.9325220d444b0d653c03.js",
"Error: Conflict: Multiple assets emit different content to the same filename main.7cdd8fe3ccdaedc3726c.js",
]
`;

exports[`"deleteOriginalAssets" option matches snapshot for \`true\` value ({Boolean}): warnings 1`] = `Array []`;
exports[`"deleteOriginalAssets" option should work and report errors on duplicate assets: warnings 1`] = `Array []`;
Loading

0 comments on commit 62d3d0a

Please sign in to comment.