From cd520c1abb9f4a735d4d58408cb162a8a13eefab Mon Sep 17 00:00:00 2001 From: Sumit Arora Date: Mon, 20 Mar 2017 13:10:27 -0400 Subject: [PATCH 1/2] fix(@angular/cli): Fixing global path issue --- packages/@angular/cli/models/config.ts | 6 ++++-- packages/@angular/cli/models/config/config.ts | 10 +++++++--- tests/e2e/tests/generate/generate-error.ts | 8 ++++++++ 3 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 tests/e2e/tests/generate/generate-error.ts diff --git a/packages/@angular/cli/models/config.ts b/packages/@angular/cli/models/config.ts index 35bd06da11b9..e2811a432882 100644 --- a/packages/@angular/cli/models/config.ts +++ b/packages/@angular/cli/models/config.ts @@ -95,8 +95,10 @@ export class CliConfig extends CliConfigBase { static fromProject(projectPath?: string): CliConfig { const configPath = this.configFilePath(projectPath); - if (!configPath || configPath === this.globalConfigFilePath()) { - return null; + + if (!configPath || + (configPath === this.globalConfigFilePath() && process.cwd() !== path.dirname(configPath))) { + return null; } if (configCacheMap.has(configPath)) { return configCacheMap.get(configPath); diff --git a/packages/@angular/cli/models/config/config.ts b/packages/@angular/cli/models/config/config.ts index 6432c6e26774..7370b1ff5766 100644 --- a/packages/@angular/cli/models/config/config.ts +++ b/packages/@angular/cli/models/config/config.ts @@ -74,9 +74,13 @@ export class CliConfig { ? ts.sys.readFile(configPath) : '{}'; const schemaContent = fs.readFileSync(DEFAULT_CONFIG_SCHEMA_PATH, 'utf-8'); - const otherContents = otherPath - .map(path => fs.existsSync(path) && ts.sys.readFile(path)) - .filter(content => !!content); + + let otherContents = new Array(); + if (configPath !== otherPath[0]) { + otherContents = otherPath + .map(path => fs.existsSync(path) && ts.sys.readFile(path)) + .filter(content => !!content); + } let content: T; let schema: Object; diff --git a/tests/e2e/tests/generate/generate-error.ts b/tests/e2e/tests/generate/generate-error.ts new file mode 100644 index 000000000000..1b82b8823a28 --- /dev/null +++ b/tests/e2e/tests/generate/generate-error.ts @@ -0,0 +1,8 @@ +import {ng} from '../../utils/process'; +import {deleteFile} from '../../utils/fs'; +import {expectToFail} from '../../utils/utils'; + +export default function() { + return deleteFile('.angular-cli.json') + .then(() => expectToFail(() => ng('generate', 'class', 'hello'))); +} From 3fdd54d5b7885817911a532f979f21dc98b824a3 Mon Sep 17 00:00:00 2001 From: Sumit Arora Date: Tue, 21 Mar 2017 20:18:41 -0400 Subject: [PATCH 2/2] fix(@angular/cli): do not error when apps is missing from the config --- packages/@angular/cli/utilities/app-utils.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/@angular/cli/utilities/app-utils.ts b/packages/@angular/cli/utilities/app-utils.ts index d355fd7b6172..f10f81a1f363 100644 --- a/packages/@angular/cli/utilities/app-utils.ts +++ b/packages/@angular/cli/utilities/app-utils.ts @@ -1,7 +1,14 @@ +const SilentError = require('silent-error'); +const chalk = require('chalk'); + import { CliConfig } from '../models/config'; export function getAppFromConfig(nameOrIndex?: String) { const apps: any[] = CliConfig.getValue('apps'); + if (!apps) { + throw new SilentError(chalk.red('Unable to find any apps in `.angular-cli.json`.')); + } + let app = apps[0]; if (nameOrIndex) { if (nameOrIndex.match(/^[0-9]+$/)) {