From 76e24b3e6a9d74b169e2c6f03fdb9f19dc37362e Mon Sep 17 00:00:00 2001 From: Ahsan Ayaz Date: Mon, 11 Sep 2017 02:06:29 +0500 Subject: [PATCH 1/2] fix(@angular/cli): Generating component considers default style extension for project now --- packages/@angular/cli/commands/generate.ts | 8 +++++++- packages/@angular/cli/tasks/schematic-run.ts | 3 +-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/@angular/cli/commands/generate.ts b/packages/@angular/cli/commands/generate.ts index 1434c224e6cd..9d6832143245 100644 --- a/packages/@angular/cli/commands/generate.ts +++ b/packages/@angular/cli/commands/generate.ts @@ -145,10 +145,16 @@ export default Command.extend({ const cwd = this.project.root; const schematicName = rawArgs[0]; - if (schematicName === 'component' || schematicName === 'directive') { + if (['component', 'c', 'directive', 'd'].indexOf(schematicName) !== -1) { if (commandOptions.prefix === undefined) { commandOptions.prefix = appConfig.prefix; } + + if (schematicName === 'component' || schematicName === 'c') { + if (commandOptions.styleext === undefined) { + commandOptions.styleext = CliConfig.getValue('defaults.styleExt'); + } + } } const SchematicRunTask = require('../tasks/schematic-run').default; diff --git a/packages/@angular/cli/tasks/schematic-run.ts b/packages/@angular/cli/tasks/schematic-run.ts index e1065f348a53..53c7517b6586 100644 --- a/packages/@angular/cli/tasks/schematic-run.ts +++ b/packages/@angular/cli/tasks/schematic-run.ts @@ -177,8 +177,7 @@ function prepOptions(schematic: Schematic<{}, {}>, options: SchematicOptions): S const properties = (schematic.description).schemaJson.properties; const keys = Object.keys(properties); - - if (schematic.description.name === 'component') { + if (['component', 'c', 'directive', 'd'].indexOf(schematic.description.name) !== -1) { options.prefix = (options.prefix === 'false' || options.prefix === '') ? '' : options.prefix; } From 50b8a415f60b2e8a9286f4972573a50a08e0b0ea Mon Sep 17 00:00:00 2001 From: Ahsan Ayaz Date: Wed, 20 Sep 2017 01:28:33 +0500 Subject: [PATCH 2/2] test(@angular/cli): added unit test for styles extension --- tests/acceptance/generate-component.spec.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/acceptance/generate-component.spec.ts b/tests/acceptance/generate-component.spec.ts index 2f0223301ba4..a98b03ee0a62 100644 --- a/tests/acceptance/generate-component.spec.ts +++ b/tests/acceptance/generate-component.spec.ts @@ -73,6 +73,22 @@ describe('Acceptance: ng generate component', () => { .then(done, done.fail); }); + it('mycomp should use styleExt from the angular-cli.json for style file', (done) => { + return ng(['generate', 'component', 'mycomp']).then(() => { + const cliJson = JSON.parse(readFileSync('.angular-cli.json', 'utf8')); + const styleExt = cliJson.defaults.styleExt; + expect(styleExt).toBe('css'); + const scssFilePath = + path.join(root, 'tmp', 'foo', 'src', 'app', 'mycomp', `mycomp.component.${styleExt}`); + const compPath = + path.join(root, 'tmp', 'foo', 'src', 'app', 'mycomp', 'mycomp.component.ts'); + expect(pathExistsSync(scssFilePath)).toBe(true); + const contents = readFileSync(compPath, 'utf8'); + expect(contents.indexOf(`styleUrls: [\'./mycomp.component.${styleExt}\']`) === -1).toBe(false); + }) + .then(done, done.fail); + }); + it('child-dir' + path.sep + 'my-comp from a child dir', (done) => { mkdirsSync(path.join(root, 'tmp', 'foo', 'src', 'app', '1', 'child-dir')); return new Promise(function (resolve) {