2019-08-20 04:29:53 +00:00
|
|
|
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
|
2019-11-25 22:54:29 +00:00
|
|
|
const CopyPlugin = require('copy-webpack-plugin');
|
|
|
|
const WasmPackPlugin = require("@wasm-tool/wasm-pack-plugin");
|
2019-08-20 04:29:53 +00:00
|
|
|
const webpack = require('webpack');
|
|
|
|
const path = require('path');
|
|
|
|
|
|
|
|
module.exports = (env, argv) => {
|
2019-11-25 22:54:29 +00:00
|
|
|
let mode = "production";
|
2019-08-20 04:29:53 +00:00
|
|
|
if (argv && argv.mode) {
|
|
|
|
mode = argv.mode;
|
|
|
|
}
|
|
|
|
|
|
|
|
console.log(`Building ${mode}...`);
|
|
|
|
|
|
|
|
return {
|
2019-11-25 22:54:29 +00:00
|
|
|
externals: /^(ruffle_web)$/i,
|
|
|
|
|
2019-08-26 22:23:38 +00:00
|
|
|
entry: path.resolve(__dirname, "js/index.js"),
|
2019-08-20 04:29:53 +00:00
|
|
|
output: {
|
2019-08-26 22:23:38 +00:00
|
|
|
path: path.resolve(__dirname, "build/dist"),
|
2019-08-22 04:06:30 +00:00
|
|
|
filename: "ruffle.js",
|
2019-08-20 04:29:53 +00:00
|
|
|
},
|
|
|
|
mode: mode,
|
2019-11-25 22:54:29 +00:00
|
|
|
plugins: [
|
|
|
|
new webpack.IgnorePlugin({
|
|
|
|
resourceRegExp: /..\/pkg\/ruffle/
|
|
|
|
}),
|
|
|
|
new CleanWebpackPlugin({
|
|
|
|
protectWebpackAssets: false,
|
|
|
|
cleanAfterEveryBuildPatterns: ["*.module.wasm"],
|
|
|
|
}),
|
|
|
|
new WasmPackPlugin({
|
|
|
|
crateDirectory: path.resolve(__dirname, ".."),
|
|
|
|
extraArgs: "--target=no-modules",
|
|
|
|
forceMode: mode,
|
|
|
|
}),
|
|
|
|
new CopyPlugin([
|
|
|
|
{ from: "../pkg/ruffle_web.js", to: "ruffle_web.js" },
|
|
|
|
{ from: "../pkg/ruffle_web_bg.wasm", to: "ruffle_web_bg.wasm" },
|
|
|
|
])
|
|
|
|
]
|
2019-08-20 04:29:53 +00:00
|
|
|
}
|
|
|
|
};
|