diff --git a/packages/@angular/cli/utilities/find-parent-module.ts b/packages/@angular/cli/utilities/find-parent-module.ts index 402bf80d4ff1..027ed87ed5c3 100644 --- a/packages/@angular/cli/utilities/find-parent-module.ts +++ b/packages/@angular/cli/utilities/find-parent-module.ts @@ -26,7 +26,7 @@ export default function findParentModule( if (files.length === 1) { return path.join(pathToCheck, files[0]); } else if (files.length > 1) { - throw new SilentError(`Multiple module files found: ${pathToCheck.replace(sourceRoot, '')}`); + throw new SilentError(`Multiple module files found: ${JSON.stringify(files)}`); } // move to parent directory diff --git a/packages/@angular/cli/utilities/resolve-module-file.ts b/packages/@angular/cli/utilities/resolve-module-file.ts index 9e8deb96576f..87e5cc9f4ccb 100644 --- a/packages/@angular/cli/utilities/resolve-module-file.ts +++ b/packages/@angular/cli/utilities/resolve-module-file.ts @@ -7,6 +7,11 @@ export function resolveModulePath( let baseModuleName = moduleNameFromFlag; let parentFolders = ''; + // If it's a full path from the cwd, we use it as is. + if (fs.existsSync(moduleNameFromFlag) && fs.statSync(moduleNameFromFlag).isFile()) { + return path.resolve(moduleNameFromFlag); + } + if (baseModuleName.includes(path.sep)) { const splitPath = baseModuleName.split(path.sep); baseModuleName = splitPath.pop(); @@ -14,10 +19,7 @@ export function resolveModulePath( } if (baseModuleName.includes('.')) { - baseModuleName = baseModuleName - .split('.') - .filter(part => part !== 'module' && part !== 'ts') - .join('.'); + baseModuleName = baseModuleName.replace(/(\.module)?(\.ts)?$/, ''); } const baseModuleWithFileSuffix = `${baseModuleName}.module.ts`;