diff --git a/package-lock.json b/package-lock.json index 0ea3daf..e52e383 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9481,6 +9481,15 @@ "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", "dev": true }, + "node-html-parser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-2.0.0.tgz", + "integrity": "sha512-3wJdYSxiVIBxuiFm9UtfNWAlBw2P+Vb/RN1nqf40q2JeZDpcJ1HsrWuWV3j15SSJ25TvfnOoac2Q+uDU9iY0sw==", + "dev": true, + "requires": { + "he": "1.2.0" + } + }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", diff --git a/package.json b/package.json index ebb8eb6..b015f5f 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,8 @@ "webpack-dev-server": "^3.9.0", "webpack-merge": "^4.2.2", "axios": "^0.21.0", - "path": "^0.12.7" + "path": "^0.12.7", + "node-html-parser": "^2.0.0" }, "dependencies": { "express": "^4.17.1", diff --git a/server.js b/server.js index 8466d06..0e567a1 100644 --- a/server.js +++ b/server.js @@ -5,6 +5,7 @@ const path = require("path"); const axios = require('axios'); const fs = require('fs'); const fsPromises = require('fs').promises; +const htmlParse = require('node-html-parser'); const APP_CONST = require('./config/constants'); let distPath = path.resolve(__dirname, "./dist"); @@ -54,25 +55,30 @@ app.get("*", async function (req, res) { res.send({'error': { message: "Check application environment", code: 500 }}) break; } - if (mfeIndex.indexOf("") > -1) { - let mfeRoutes - switch (process.env.APPENV.toLowerCase()) { - case APP_CONST.APP_ENV_DEV.toLowerCase() : - case APP_CONST.APP_ENV_PROD.toLowerCase() : - mfeRoutes = await axios.get(env_config.mfeRoutesPath) - mfeRoutes = mfeRoutes.data - break; - case APP_CONST.APP_ENV_LOCAL.toLowerCase() : - case APP_CONST.APP_ENV_LOCAL_MULTI.toLowerCase() : - mfeRoutes = await fsPromises.readFile(path.join(configPath + env_config.mfeRoutesPath)) - break; - default : - res.send({'error': { message: "Check application environment", code: 500 }}) - break; - } - const mfe = mfeIndex.toString().replace(/([\s\S]*?)/, "" + mfeRoutes + ""); - await fsPromises.writeFile(path.join(distPath + "/index.html"), mfe); + let mfeRoutes + switch (process.env.APPENV.toLowerCase()) { + case APP_CONST.APP_ENV_DEV.toLowerCase() : + case APP_CONST.APP_ENV_PROD.toLowerCase() : + mfeRoutes = await axios.get(env_config.mfeRoutesPath) + mfeRoutes = mfeRoutes.data + break; + case APP_CONST.APP_ENV_LOCAL.toLowerCase() : + case APP_CONST.APP_ENV_LOCAL_MULTI.toLowerCase() : + mfeRoutes = await fsPromises.readFile(path.join(configPath + env_config.mfeRoutesPath)) + break; + default : + res.send({'error': { message: "Check application environment", code: 500 }}) + break; } + let mfeIndexHtml = htmlParse.parse(mfeIndex) + let singleSpaMain = mfeIndexHtml.querySelector('#single-spa-main') + singleSpaMain.remove() + let singleSpaRouter = mfeIndexHtml.querySelector('single-spa-router') + singleSpaRouter.insertAdjacentHTML('beforeend', '
') + singleSpaMain = mfeIndexHtml.querySelector('#single-spa-main') + singleSpaMain.insertAdjacentHTML('beforeend', mfeRoutes) + + await fsPromises.writeFile(path.join(distPath + "/index.html"), mfeIndexHtml.toString()); res.sendFile(path.join(distPath + "/index.html")); }); diff --git a/src/index.ejs b/src/index.ejs index 96a1c72..f766fae 100644 --- a/src/index.ejs +++ b/src/index.ejs @@ -72,10 +72,7 @@ -
- - -
+