UNPKG

ssr

Version:

cli for react/vue2/vue3 ssr deploy on serverless or tradtional web server

39 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addChunkNameInRoutes = exports.addChunkNameInQuery = void 0; const fs_1 = require("fs"); const path_1 = require("path"); const es_module_lexer_1 = require("es-module-lexer"); const magic_string_1 = require("magic-string"); const webpackCommentRegExp = /webpackChunkName:\s?"(.*)?"\s?\*/; const addChunkNameInQuery = (source) => { var _a; let str = new magic_string_1.default(source); const imports = (0, es_module_lexer_1.parse)(source)[0]; for (let index = 0; index < imports.length; index++) { const { s: start, e: end, se: statementEnd } = imports[index]; const rawUrl = source.slice(start, end); const chunkName = (_a = webpackCommentRegExp.exec(rawUrl)) === null || _a === void 0 ? void 0 : _a[1]; if (rawUrl.includes('layout') || rawUrl.includes('App') || rawUrl.includes('store')) { str = str.appendRight(statementEnd - 1, '?chunkName=Page'); } else if (chunkName) { str = str.appendRight(statementEnd - (rawUrl.includes('\n') ? 2 : 1), `?chunkName=${chunkName}`); } else { str = str.appendRight(statementEnd - 1, '?chunkName=Page'); } } return str.toString(); }; exports.addChunkNameInQuery = addChunkNameInQuery; const addChunkNameInRoutes = async () => { const { getCwd } = await Promise.resolve().then(() => require('ssr-common-utils')); const cwd = getCwd(); const declareRoutes = await fs_1.promises.readFile((0, path_1.resolve)(cwd, './build/ssr-declare-routes.js'), 'utf-8'); await fs_1.promises.writeFile((0, path_1.resolve)(cwd, './build/ssr-declare-routes.js'), (0, exports.addChunkNameInQuery)(declareRoutes)); const manualRoutes = await fs_1.promises.readFile((0, path_1.resolve)(cwd, './build/ssr-manual-routes.js'), 'utf-8'); await fs_1.promises.writeFile((0, path_1.resolve)(cwd, './build/ssr-manual-routes.js'), (0, exports.addChunkNameInQuery)(manualRoutes)); }; exports.addChunkNameInRoutes = addChunkNameInRoutes; //# sourceMappingURL=add-chunk-name.js.map