diff --git a/packages/@angular/cli/commands/generate.ts b/packages/@angular/cli/commands/generate.ts index e9a4d79b3585..9318f9f94ad4 100644 --- a/packages/@angular/cli/commands/generate.ts +++ b/packages/@angular/cli/commands/generate.ts @@ -109,10 +109,16 @@ export default Command.extend({ schematicName, collectionName }) - .then((availableOptions: SchematicAvailableOptions) => { + .then((availableOptions: SchematicAvailableOptions[]) => { let anonymousOptions: string[] = []; + + const nameOption = availableOptions.filter(opt => opt.name === 'name')[0]; + if (nameOption) { + anonymousOptions = [...anonymousOptions, '']; + } + if (collectionName === '@schematics/angular' && schematicName === 'interface') { - anonymousOptions = ['']; + anonymousOptions = [...anonymousOptions, '']; } this.registerOptions({ @@ -127,8 +133,12 @@ export default Command.extend({ throw 'The `ng generate module` command requires a name to be specified.'; } - const entityName = rawArgs[1]; - commandOptions.name = stringUtils.dasherize(entityName.split(separatorRegEx).pop()); + let entityName = rawArgs[1]; + if (entityName) { + commandOptions.name = stringUtils.dasherize(entityName.split(separatorRegEx).pop()); + } else { + entityName = ''; + } const appConfig = getAppFromConfig(commandOptions.app); const dynamicPathOptions: DynamicPathOptions = { diff --git a/tests/e2e/tests/build/build-app-shell-with-schematic.ts b/tests/e2e/tests/build/build-app-shell-with-schematic.ts index db0c0e457070..41f799cd90e7 100644 --- a/tests/e2e/tests/build/build-app-shell-with-schematic.ts +++ b/tests/e2e/tests/build/build-app-shell-with-schematic.ts @@ -26,10 +26,10 @@ export default function () { return Promise.resolve() .then(() => expectToFail(() => { - return ng('generate', 'appShell', 'name', '--universal-app', 'universal'); + return ng('generate', 'appShell', '--universal-app', 'universal'); }) .then(() => appendToFile('src/app/app.component.html', '')) - .then(() => ng('generate', 'appShell', 'name', '--universal-app', 'universal')) + .then(() => ng('generate', 'appShell', '--universal-app', 'universal')) .then(() => updateJsonFile('package.json', packageJson => { const dependencies = packageJson['dependencies']; dependencies['@angular/platform-server'] = platformServerVersion;