Skip to content

Commit

Permalink
Fix compound external assets path in bundle (#26069)
Browse files Browse the repository at this point in the history
  • Loading branch information
germain-gg authored Aug 30, 2023
1 parent 3fd6b62 commit 19b2ede
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -733,6 +733,7 @@ function getAssetOutputPath(url, resourcePath) {
// `res` is the parent dir for our own assets in various layers
// `dist` is the parent dir for KaTeX assets
const prefix = /^.*[/\\](dist|res)[/\\]/;

/**
* Only needed for https://github.com/vector-im/element-web/pull/15939
* If keeping this, we are not able to load external assets such as SVG
Expand All @@ -742,6 +743,21 @@ function getAssetOutputPath(url, resourcePath) {
throw new Error(`Unexpected asset path: ${resourcePath}`);
}
let outputDir = path.dirname(resourcePath).replace(prefix, "");

/**
* Imports from Compound are "absolute", we need to strip out the prefix
* coming before the npm package name.
*
* This logic is scoped to compound packages for now as they are the only
* package that imports external assets. This might need to be made more
* generic in the future
*/
const compoundImportsPrefix = /@vector-im(?:\\|\/)compound-(.*?)(?:\\|\/)/;
const compoundMatch = outputDir.match(compoundImportsPrefix);
if (compoundMatch) {
outputDir = outputDir.substring(compoundMatch.index + compoundMatch[0].length);
}

if (isKaTeX) {
// Add a clearly named directory segment, rather than leaving the KaTeX
// assets loose in each asset type directory.
Expand Down

0 comments on commit 19b2ede

Please sign in to comment.