diff options
author | 2020-10-12 13:34:55 +0100 | |
---|---|---|
committer | 2020-10-12 13:34:55 +0100 | |
commit | 4def3e1a76bc888113228ffc4a083827040a5b69 (patch) | |
tree | 192dfa198f69a670c5d88355f9d68128f6facf43 /webpack.config.js | |
parent | Merge pull request #21 from python-discord/sentry/add-sentry (diff) |
Change build system away from create-react-app
Diffstat (limited to 'webpack.config.js')
-rw-r--r-- | webpack.config.js | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..1a98131 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,87 @@ +const path = require("path") +const HtmlWebpackPlugin = require("html-webpack-plugin"); +const webpack = require("webpack") + +module.exports = (env) => { + return { + entry: "./src/index.tsx", + mode: env, + output: { + path: path.resolve(__dirname, "../build/js"), + filename: "[name].bundle.js", + publicPath: "/", + devtoolModuleFilenameTemplate: "file:///" + path.resolve(__dirname, "[resource-path]?[loaders]") + }, + resolve: { + extensions: ['.js', '.jsx', '.ts', '.tsx'] + }, + module: { + rules: [ + { + test: /\.m?js$/, + exclude: /(node_modules|bower_components)/, + use: { + loader: "swc-loader", + options: { + jsc: { + parser: { + syntax: "ecmascript", + jsx: true, + dynamicImport: true + }, + transform: { + react: { + pragma: "React.createElement", + pragmaFrag: "React.Fragment", + throwIfNamespace: true, + development: false, + useBuiltins: false + } + } + } + } + } + }, + { + test: /\.tsx?$/, + exclude: /(node_modules|bower_components)/, + use: { + loader: "swc-loader", + options: { + jsc: { + parser: { + syntax: "typescript", + tsx: true, + dynamicImport: true + } + } + } + } + }, + { + test: /\.svg$/, + loader: 'svg-inline-loader' + } + ] + }, + devServer: { + contentBase: path.join(__dirname, 'public'), + compress: true, + port: 3000, + historyApiFallback: true, + }, + plugins: [ + new HtmlWebpackPlugin({ + inject: true, + template: 'public/index.html' + }), + new webpack.EnvironmentPlugin({ + NODE_ENV: "production", + REACT_APP_SHA: "development", + REACT_APP_SENTRY_DSN: "development", + REACT_APP_BRANCH: "development", + REACT_APP_OAUTH2_CLIENT_ID: "0" + }) + ] + } +} |