diff --git a/lib/definitions/project.d.ts b/lib/definitions/project.d.ts index d8f77881be..7ae21c0498 100644 --- a/lib/definitions/project.d.ts +++ b/lib/definitions/project.d.ts @@ -369,7 +369,7 @@ interface IProjectConfigService { detectProjectConfigs(projectDir?: string): IProjectConfigInformation; - getDefaultTSConfig(appId: string): string; + getDefaultTSConfig(appId: string, appPath: string): string; writeDefaultConfig(projectDir?: string, appId?: string): boolean | string; diff --git a/lib/services/project-config-service.ts b/lib/services/project-config-service.ts index 8ed711ed37..d4597d7097 100644 --- a/lib/services/project-config-service.ts +++ b/lib/services/project-config-service.ts @@ -64,11 +64,15 @@ export class ProjectConfigService implements IProjectConfigService { return this.$injector.resolve("projectHelper"); } - public getDefaultTSConfig(appId: string = "org.nativescript.app") { + public getDefaultTSConfig( + appId: string = "org.nativescript.app", + appPath: string = "app" + ) { return `import { NativeScriptConfig } from '@nativescript/core'; export default { id: '${appId}', + appPath: '${appPath}', appResourcesPath: 'App_Resources', android: { v8Flags: '--expose_gc', @@ -274,7 +278,19 @@ export default { return false; } - this.$fs.writeFile(TSConfigPath, this.getDefaultTSConfig(appId)); + const possibleAppPaths = [ + path.resolve(projectDir, constants.SRC_DIR), + path.resolve(projectDir, constants.APP_FOLDER_NAME), + ]; + + let appPath = possibleAppPaths.find((possiblePath) => + this.$fs.exists(possiblePath) + ); + if (appPath) { + appPath = path.relative(projectDir, appPath).replace(path.sep, "/"); + } + + this.$fs.writeFile(TSConfigPath, this.getDefaultTSConfig(appId, appPath)); return TSConfigPath; } diff --git a/test/stubs.ts b/test/stubs.ts index 0448912cf3..fed35ff300 100644 --- a/test/stubs.ts +++ b/test/stubs.ts @@ -622,11 +622,12 @@ export class ProjectConfigServiceStub implements IProjectConfigService { }; } - getDefaultTSConfig(appId: string): string { + getDefaultTSConfig(appId: string, appPath: string): string { return `import { NativeScriptConfig } from '@nativescript/core'; export default { id: '${appId}', + appPath: '${appPath}' appResourcesPath: 'App_Resources', android: { v8Flags: '--expose_gc',