fluid-lab / Spifind

An eye-gaze based children's game
https://spifind-shejyoequm.now.sh/
BSD 3-Clause "New" or "Revised" License
1 stars 0 forks source link

Dynamic routes do not work in production build #1

Open jobara opened 3 months ago

jobara commented 3 months ago

Describe the bug

The dynamic routes used in the menu only work when running through the webpack-dev-server. After running npm run build, the contents of the public folder do not have directories like /htp1, /level1, level2, etc (so they generate 404 errors when deployed to a production webserver).

It's as if the react-router-dom component is not working as expected for some reason. Tested with Chrome 83.

When it works:

  1. npm install
  2. npm run start
  3. open http://localhost:8888

When it fails:

  1. npm install
  2. npm run build
  3. python -m http.server --directory public
  4. open http://localhost:8888 -> click menu options

It seems that @waharnum had some problems creating a deployable unit in INFRA-217 as well.

Additionally, the UglifyJsPlugin from webpack 3.10.0 causes a build error. It's necessary to remove it from webpack.production.config.js to get a clean build (which still has the issue with the routes).

Additional context or notes

Migrated from FLUID-9527. Originally filed by @gtirloni on July 9, 2020

jobara commented 3 months ago

Comment Migrated from FLUID-9527 originally posted by @BlueSlug on July 14, 2020 at 3:09 AM

Once I'd removed the UglifyJsPlugin step from the webpack script, I was able to get the site built and running mostly properly by running server.js via the following actions:

  1. npm install
  2. npm run serve:build
  3. open http://localhost:8080

OR

  1. npm install
  2. npm run build
  3. node .\server.js
  4. open http://localhost:8080

I say "mostly properly" because almost none of the audio works any more, as all but one file were hosted on and imported from instaud.io. Only the "game over" sound is actually present in the repository, somewhat fittingly.

For context, my environment is: Windows 10 Pro v1909 Chrome 83 Node v10.15.3 npm 6.4.1

jobara commented 3 months ago

Comment Migrated from FLUID-9527 originally posted by @gtirloni on July 14, 2020 at 7:56 AM

Should we consider this a dynamic website then with a live component (the express server)? I was hoping to just serve the contents of the public folder but it doesn't seem possible.