Add required webpack config to load Safari support modules

See https://github.com/matrix-org/matrix-react-sdk/pull/5989
pull/17193/head
Travis Ralston 2021-05-06 21:51:03 -06:00
parent 7cfec9255e
commit 07a0af2aae
1 changed files with 42 additions and 0 deletions

View File

@ -47,6 +47,11 @@ module.exports = (env, argv) => {
return { return {
...development, ...development,
node: {
// Mock out the NodeFS module: The opus decoder imports this wrongly.
fs: 'empty',
},
entry: { entry: {
"bundle": "./src/vector/index.ts", "bundle": "./src/vector/index.ts",
"indexeddb-worker": "./src/vector/indexeddb-worker.js", "indexeddb-worker": "./src/vector/indexeddb-worker.js",
@ -278,6 +283,43 @@ module.exports = (env, argv) => {
outputPath: '.', outputPath: '.',
}, },
}, },
{
// This is from the same place as the encoderWorker above, but only needed
// for Safari support.
test: /decoderWorker\.min\.js$/,
loader: "file-loader",
type: "javascript/auto", // https://github.com/webpack/webpack/issues/6725
options: {
// We deliberately override the name so it makes sense in debugging
name: 'opus-decoderWorker.min.[hash:7].[ext]',
outputPath: '.',
},
},
{
// This is from the same place as the encoderWorker above, but only needed
// for Safari support.
test: /decoderWorker\.min\.wasm$/,
loader: "file-loader",
type: "javascript/auto", // https://github.com/webpack/webpack/issues/6725
options: {
// We deliberately don't change the name because the decoderWorker has this
// hardcoded. This is here to avoid the default wasm rule from adding a hash.
name: 'decoderWorker.min.wasm',
outputPath: '.',
},
},
{
// This is from the same place as the encoderWorker above, but only needed
// for Safari support.
test: /waveWorker\.min\.js$/,
loader: "file-loader",
type: "javascript/auto", // https://github.com/webpack/webpack/issues/6725
options: {
// We deliberately override the name so it makes sense in debugging
name: 'wave-encoderWorker.min.[hash:7].[ext]',
outputPath: '.',
},
},
{ {
// cache-bust languages.json file placed in // cache-bust languages.json file placed in
// element-web/webapp/i18n during build by copy-res.js // element-web/webapp/i18n during build by copy-res.js