diff --git a/mate-scripts/package.json b/mate-scripts/package.json index f7de7f2..3d7f7a9 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 010f21d..a5c3a91 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 4db7677..1c1a76b 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 4906445..fcd1ee3 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 92cb5ec..f4b341a 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 7f21a54..b715def 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; }