summaryrefslogtreecommitdiff
path: root/webpack.config.site.dev.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2021-03-31 19:42:11 +0200
committerJules Laplace <julescarbon@gmail.com>2021-03-31 19:42:11 +0200
commit4c19ba5d511676f1f901f6d0a57ff67c4bca1843 (patch)
tree1d45af6de0ef9f460326f4150474fbb6d2f29c55 /webpack.config.site.dev.js
parent87586f73fc5741070466d189dfab807a190753e5 (diff)
new custom project index for last museum
Diffstat (limited to 'webpack.config.site.dev.js')
-rw-r--r--webpack.config.site.dev.js81
1 files changed, 81 insertions, 0 deletions
diff --git a/webpack.config.site.dev.js b/webpack.config.site.dev.js
new file mode 100644
index 0000000..a3e06fd
--- /dev/null
+++ b/webpack.config.site.dev.js
@@ -0,0 +1,81 @@
+require("dotenv").config();
+
+const webpack = require("webpack");
+const path = require("path");
+// const TerserPlugin = require("terser-webpack-plugin");
+
+module.exports = function (env) {
+ console.log("Building live site (development)");
+ console.log(env);
+ const appTarget = (env && env.APP_TARGET) || "app";
+ return {
+ mode: "production",
+ entry: {
+ main: "./frontend/site/index.js",
+ },
+ output: {
+ path: path.resolve(__dirname, "static/js/dist"),
+ filename: "bundle.js",
+ },
+ plugins: [
+ new webpack.NormalModuleReplacementPlugin(
+ /(.*)APP_TARGET(\.*)/,
+ function (resource) {
+ resource.request = resource.request.replace(
+ /APP_TARGET/,
+ `${appTarget}`
+ );
+ }
+ ),
+ new webpack.DefinePlugin({
+ "process.env.NODE_ENV": JSON.stringify("production"),
+ // 'process.env.S3_HOST': JSON.stringify(process.env.S3_HOST || ""),
+ // 'process.env.API_HOST': JSON.stringify(process.env.API_HOST || ""),
+ __REACT_DEVTOOLS_GLOBAL_HOOK__: "({ isDisabled: true })",
+ }),
+ // new TerserPlugin(),
+ // new webpack.optimize.AggressiveMergingPlugin(),
+ // new Visualizer({
+ // filename: './statistics.html'
+ // })
+ ],
+ // optimization: {
+ // minimize: true,
+ // minimizer: [
+ // new TerserPlugin({
+ // terserOptions: {
+ // compress: {
+ // // drop_console: true,
+ // },
+ // },
+ // }),
+ // ],
+ // },
+ resolve: {
+ alias: {
+ // "react": "preact/compat",
+ // "react-dom/test-utils": "preact/test-utils",
+ // "react-dom": "preact/compat",
+ },
+ },
+ devtool: "cheap-module-source-map",
+ module: {
+ rules: [
+ {
+ test: /\.css$/,
+ use: ["style-loader", "css-loader"],
+ },
+ {
+ test: /\.js$/,
+ // include: path.resolve(__dirname, 'client'),
+ exclude: /(node_modules|bower_components|build)/,
+ loader: "babel-loader",
+ options: {
+ presets: ["@babel/preset-react"],
+ plugins: ["@babel/plugin-transform-runtime"],
+ },
+ },
+ ],
+ },
+ };
+};