Mohammed Akram Hussain
02/05/2025, 3:45 PMconst commonConfig = {
experiments: {
topLevelAwait: true,
},
module: {
rules: [
{
test: /\.wasm$/,
loader: 'raw-loader',
},
{
test: /\.mjs$/,
type: "javascript/esm",
},
],
defaultRules: [
{
type: 'javascript/auto',
resolve: {},
},
{
test: /\.json$/i,
type: 'json',
},
],
},
resolve: {
alias: {
'~': path.resolve(__dirname, 'resources/js')
},
extensions: [".js", ".jsx", ".wasm",".mjs"],
}
};
Mohammed Akram Hussain
02/07/2025, 12:34 AMMohammed Akram Hussain
02/08/2025, 11:48 PMmix.copyDirectory('resources/js/wasm', 'public/js/wasm');
mix.webpackConfig({
experiments: {
asyncWebAssembly: true,
syncWebAssembly: true
},
output: {
webassemblyModuleFilename: 'js/wasm/[name].wasm',
publicPath: '/'
},
module: {
rules: [
{
test: /\.wasm$/,
type: "asset/resource",
generator: {
filename: 'js/wasm/[name][ext]'
}
},
{
test: /skiko\.mjs$/,
loader: 'string-replace-loader',
options: {
search: 'require("url").fileURLToPath(new URL("./",import.meta.url))',
replace: 'window.location.pathname.substring(0, window.location.pathname.lastIndexOf("/") + 1)'
}
}
]
},
resolve: {
fallback: {
fs: false,
path: false,
module: false,
}
},
plugins: [
new definePlugin({
'process.release.name': JSON.stringify('browser')
})
]
});