API_BASE_URL will need to be set to 'http://remote.example.com/' instead of 'http://remote.example.com/api/'
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const path = require("path");
 | |
| const { merge } = require("webpack-merge");
 | |
| 
 | |
| const common = require("./webpack.config.js");
 | |
| 
 | |
| // for testing: for prod, the Dockerfile should have the official prod version used
 | |
| const RWP_BASE_URL = process.env.RWP_BASE_URL || "https://replayweb.page/";
 | |
| 
 | |
| if (!process.env.API_BASE_URL) {
 | |
|   throw new Error(
 | |
|     "To run a dev frontend server, please set the API_BASE_URL pointing to your backend api server in '.env.local'"
 | |
|   );
 | |
| }
 | |
| 
 | |
| const devBackendUrl = new URL(process.env.API_BASE_URL);
 | |
| const shoelaceAssetsSrcPath = path.resolve(
 | |
|   __dirname,
 | |
|   "node_modules/@shoelace-style/shoelace/dist/assets"
 | |
| );
 | |
| const shoelaceAssetsPublicPath = "shoelace/assets";
 | |
| 
 | |
| module.exports = merge(common, {
 | |
|   devServer: {
 | |
|     watchFiles: ["src/*.js"],
 | |
|     open: true,
 | |
|     compress: true,
 | |
|     hot: true,
 | |
|     static: [
 | |
|       {
 | |
|         directory: shoelaceAssetsSrcPath,
 | |
|         publicPath: "/" + shoelaceAssetsPublicPath,
 | |
|       },
 | |
|       {
 | |
|         directory: path.join(__dirname),
 | |
|         //publicPath: "/",
 | |
|         watch: true,
 | |
|       },
 | |
|     ],
 | |
|     historyApiFallback: true,
 | |
|     proxy: {
 | |
|       "/api": {
 | |
|         target: devBackendUrl.href,
 | |
|         headers: {
 | |
|           Host: devBackendUrl.host,
 | |
|         },
 | |
|         ws: true,
 | |
|       },
 | |
| 
 | |
|       "/data": {
 | |
|         target: devBackendUrl.href,
 | |
|         headers: {
 | |
|           Host: devBackendUrl.host,
 | |
|         },
 | |
|       },
 | |
|     },
 | |
|     // Serve replay service worker file
 | |
|     onBeforeSetupMiddleware: (server) => {
 | |
|       server.app.get("/replay/sw.js", (req, res) => {
 | |
|         res.set("Content-Type", "application/javascript");
 | |
|         res.send(`importScripts("${RWP_BASE_URL}sw.js")`);
 | |
|       });
 | |
|     },
 | |
|     port: 9870,
 | |
|   },
 | |
| });
 |