Niedzielski has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/371509 )

Change subject: Server: Don't crash when unable to load the asset-manifest.json
......................................................................


Server: Don't crash when unable to load the asset-manifest.json

Some times in development when starting the processes the server starts
and the asset-manifest.json in dist/public still hasn't been generated.

Don't crash when not found, just initialize with no assets. In
production, let the server crash, since it would be an invalid artifact
(no frontend assets).

Change-Id: I6b954e6403787387c982b02c944171feeb28d72d
---
M src/server/index.ts
M src/server/templates/page.ts
2 files changed, 14 insertions(+), 2 deletions(-)

Approvals:
  Niedzielski: Verified; Looks good to me, approved



diff --git a/src/server/index.ts b/src/server/index.ts
index 76673c0..ca50a61 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -2,7 +2,16 @@
 import page, { AssetsManifest } from "./templates/page";
 import app from "../common/components/app";
 
-const assets: AssetsManifest = 
require("../../dist/public/assets-manifest.json");
+let assets: AssetsManifest = {};
+try {
+  assets = require("../../dist/public/assets-manifest.json");
+} catch (e) {
+  if (process.env.NODE_ENV === "production") {
+    throw e;
+  } else {
+    console.error("Unable to load the static assets manifest file");
+  }
+}
 
 const { PORT = 3000 } = process.env;
 const server = express();
diff --git a/src/server/templates/page.ts b/src/server/templates/page.ts
index 4929a35..9465595 100644
--- a/src/server/templates/page.ts
+++ b/src/server/templates/page.ts
@@ -14,6 +14,9 @@
 }
 
 export default function page({ title, body = "", assets }: PageParams): string 
{
+  const scripts = [];
+  assets.index && assets.index.js && scripts.push(assets.index.js);
+
   return `
 <!DOCTYPE html>
 <html lang="en">
@@ -25,7 +28,7 @@
   </head>
   <body>
     <div id="root">${body}</div>
-    <script type="text/javascript" src="./${assets.index.js}"></script>
+    ${scripts.map(s => `<script type="text/javascript" 
src="./${s}"></script>`)}
   </body>
 </html>`;
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/371509
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I6b954e6403787387c982b02c944171feeb28d72d
Gerrit-PatchSet: 2
Gerrit-Project: marvin
Gerrit-Branch: master
Gerrit-Owner: Jhernandez <jhernan...@wikimedia.org>
Gerrit-Reviewer: Jhernandez <jhernan...@wikimedia.org>
Gerrit-Reviewer: Niedzielski <sniedziel...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to