From bc9d217de1344233566dea3da008c148e7ab1c2d Mon Sep 17 00:00:00 2001 From: Misha Grinko Date: Sun, 14 Jul 2024 12:37:25 +0300 Subject: [PATCH] [mate-scripts] add homepage support --- mate-scripts/package.json | 2 +- mate-scripts/src/commands/Build.command.ts | 6 +++++- mate-scripts/src/services/Vite.service.ts | 8 +++++++- mate-scripts/src/tools/fileSystem.ts | 3 ++- mate-scripts/src/tools/getDefaultConfig.ts | 1 + mate-scripts/src/typedefs.ts | 1 + 6 files changed, 17 insertions(+), 4 deletions(-) diff --git a/mate-scripts/package.json b/mate-scripts/package.json index f7de7f22..3d7f7a99 100644 --- a/mate-scripts/package.json +++ b/mate-scripts/package.json @@ -1,6 +1,6 @@ { "name": "@mate-academy/scripts", - "version": "1.8.2", + "version": "1.8.3", "description": "Scripts to init, run, test, deploy Mate academy homework projects", "main": "bin/mateScripts.js", "scripts": { diff --git a/mate-scripts/src/commands/Build.command.ts b/mate-scripts/src/commands/Build.command.ts index 010f21dc..a5c3a914 100644 --- a/mate-scripts/src/commands/Build.command.ts +++ b/mate-scripts/src/commands/Build.command.ts @@ -37,7 +37,11 @@ export class BuildCommand extends Command { console.log('START react-scripts build'); } - this.reactScripts.build(DESTINATION_DIR, options.shouldShowInternalLogs); + this.reactScripts.build( + DESTINATION_DIR, + options.shouldShowInternalLogs, + this.config.homepage, + ); }; protected reactTypescript = (options: BuildOptions) => { diff --git a/mate-scripts/src/services/Vite.service.ts b/mate-scripts/src/services/Vite.service.ts index 4db7677c..1c1a76b8 100644 --- a/mate-scripts/src/services/Vite.service.ts +++ b/mate-scripts/src/services/Vite.service.ts @@ -46,11 +46,17 @@ export class ViteService { build( buildPath?: string, showLogs = true, + homepage?: string, ) { const BUILD_PATH = buildPath ? ` --out-dir ${buildPath}` : ''; - const command = `cross-env ${this.binDir}vite build${BUILD_PATH}`; + + const BASE = homepage + ? ` --base=${homepage}` + : ''; + + const command = `cross-env ${this.binDir}vite build${BUILD_PATH}${BASE}`; if (showLogs) { console.log(`Execute command: ${command}`); diff --git a/mate-scripts/src/tools/fileSystem.ts b/mate-scripts/src/tools/fileSystem.ts index 4906445b..fcd1ee37 100644 --- a/mate-scripts/src/tools/fileSystem.ts +++ b/mate-scripts/src/tools/fileSystem.ts @@ -66,7 +66,7 @@ function isSystemRoot(rootDir: string) { } export function getConfig(rootDir: string): Config { - const { mateAcademy } = JSON.parse( + const { mateAcademy, homepage } = JSON.parse( fs.readFileSync( path.join(rootDir, 'package.json'), { encoding: 'utf-8' }, @@ -80,6 +80,7 @@ export function getConfig(rootDir: string): Config { return { ...defaultConfig, + homepage, ...config, linters: { ...defaultConfig.linters, diff --git a/mate-scripts/src/tools/getDefaultConfig.ts b/mate-scripts/src/tools/getDefaultConfig.ts index 92cb5ecc..f4b341a0 100644 --- a/mate-scripts/src/tools/getDefaultConfig.ts +++ b/mate-scripts/src/tools/getDefaultConfig.ts @@ -7,6 +7,7 @@ export const getDefaultConfig = ( projectType = ProjectTypes.None, ): Config => ({ projectType, + homepage: '', nodejsMajorVersion: NodeJsVersions.v14, linters: { ...getDefaultLintersConfig(projectType), diff --git a/mate-scripts/src/typedefs.ts b/mate-scripts/src/typedefs.ts index 7f21a542..b715def5 100644 --- a/mate-scripts/src/typedefs.ts +++ b/mate-scripts/src/typedefs.ts @@ -33,6 +33,7 @@ export interface Tests { export interface Config { projectType: ProjectTypes; nodejsMajorVersion: NodeJsVersions; + homepage: string; linters: Linters; tests: Tests; }