Skip to content

Commit cb69c95

Browse files
committed
feat(@schematics/angular): Add the option to create an empty workspace
Fixes #12216
1 parent 98c2747 commit cb69c95

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

packages/schematics/angular/ng-new/index.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
empty,
1616
mergeWith,
1717
move,
18+
noop,
1819
schematic,
1920
} from '@angular-devkit/schematics';
2021
import {
@@ -60,7 +61,7 @@ export default function (options: NgNewOptions): Rule {
6061
mergeWith(
6162
apply(empty(), [
6263
schematic('workspace', workspaceOptions),
63-
schematic('application', applicationOptions),
64+
options.empty ? noop : schematic('application', applicationOptions),
6465
move(options.directory || options.name),
6566
]),
6667
),

packages/schematics/angular/ng-new/index_spec.ts

+9
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,13 @@ describe('Ng New Schematic', () => {
5656
const moduleContent = tree.readContent('/foo/src/app/app.module.ts');
5757
expect(moduleContent).toMatch(/declarations:\s*\[\s*AppComponent\s*\]/m);
5858
});
59+
60+
it('empty option should create an empty workspace', () => {
61+
const options = { ...defaultOptions, empty: true };
62+
63+
const tree = schematicRunner.runSchematic('ng-new', options);
64+
const files = tree.files;
65+
expect(files.indexOf('/bar/angular.json')).toBeGreaterThanOrEqual(0);
66+
expect(files.indexOf('/bar/src')).toBe(-1);
67+
});
5968
});

packages/schematics/angular/ng-new/schema.json

+6
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,12 @@
131131
"type": "boolean",
132132
"default": false,
133133
"alias": "S"
134+
},
135+
"empty": {
136+
"description": "Create an empty workspace with no projects.",
137+
"type": "boolean",
138+
"default": false,
139+
"alias": "e"
134140
}
135141
},
136142
"required": [

0 commit comments

Comments
 (0)