diff --git a/packages/@angular/cli/utilities/project.ts b/packages/@angular/cli/utilities/project.ts index f3667a89a512..3a661598c85a 100644 --- a/packages/@angular/cli/utilities/project.ts +++ b/packages/@angular/cli/utilities/project.ts @@ -2,11 +2,10 @@ import * as fs from 'fs'; import * as os from 'os'; import * as path from 'path'; import { findUp } from './find-up'; +import { normalize } from '@angular-devkit/core'; export function insideProject(): boolean { - const possibleConfigFiles = ['angular.json', '.angular.json']; - - return findUp(possibleConfigFiles, process.cwd()) !== null; + return getProjectDetails() !== null; } export interface ProjectDetails { @@ -31,7 +30,7 @@ export function getProjectDetails(): ProjectDetails | null { const possibleDir = path.dirname(configFilePath); const homedir = os.homedir(); - if (possibleDir === homedir) { + if (normalize(possibleDir) === normalize(homedir)) { const packageJsonPath = path.join(possibleDir, 'package.json'); if (!fs.existsSync(packageJsonPath)) { // No package.json diff --git a/tests/e2e/tests/basic/in-project-logic.ts b/tests/e2e/tests/basic/in-project-logic.ts new file mode 100644 index 000000000000..fea6d3fd7a1c --- /dev/null +++ b/tests/e2e/tests/basic/in-project-logic.ts @@ -0,0 +1,15 @@ +import {writeFile, deleteFile} from '../../utils/fs'; +import {ng} from '../../utils/process'; +import * as os from 'os'; +import {join} from 'path'; + + +export default function() { + const homedir = os.homedir(); + const globalConfigPath = join(homedir, '.angular.json'); + return Promise.resolve() + .then(() => writeFile(globalConfigPath, '{"version":1}')) + .then(() => process.chdir(homedir)) + .then(() => ng('new', 'proj-name', '--dry-run')) + .then(() => deleteFile(globalConfigPath)); +}