mirror of
https://github.com/angular/angular-cli.git
synced 2025-05-16 02:24:10 +08:00
feat(@schematics/angular): let Universal schematic use configurations from build architect
This commit is contained in:
parent
01beb520bc
commit
a94c826661
@ -68,6 +68,16 @@ function getClientTargets(
|
||||
return projectTargets;
|
||||
}
|
||||
|
||||
// TODO: Add types for the Target
|
||||
// tslint:disable-next-line:no-any
|
||||
function getFileReplacements(target: any ) {
|
||||
const configurations = target.configurations || {};
|
||||
const production = configurations.production || {};
|
||||
const fileReplacements = production.fileReplacements || [];
|
||||
|
||||
return fileReplacements;
|
||||
}
|
||||
|
||||
function updateConfigFile(options: UniversalOptions, tsConfigDirectory: Path): Rule {
|
||||
return (host: Tree) => {
|
||||
const workspace = getWorkspace(host);
|
||||
@ -83,9 +93,19 @@ function updateConfigFile(options: UniversalOptions, tsConfigDirectory: Path): R
|
||||
main: `${clientProject.root}src/main.server.ts`,
|
||||
tsConfig: join(tsConfigDirectory, `${options.tsconfigFileName}.json`),
|
||||
};
|
||||
|
||||
// TODO: Add types for the TargetConfiguration
|
||||
// tslint:disable-next-line:no-any
|
||||
const builderConfigurations: any = {
|
||||
production: {
|
||||
fileReplacements: getFileReplacements(projectTargets.build),
|
||||
},
|
||||
};
|
||||
|
||||
const serverTarget: JsonObject = {
|
||||
builder: '@angular-devkit/build-angular:server',
|
||||
options: builderOptions,
|
||||
configurations: builderConfigurations,
|
||||
};
|
||||
projectTargets.server = serverTarget;
|
||||
|
||||
|
@ -130,6 +130,13 @@ describe('Universal Schematic', () => {
|
||||
expect(opts.outputPath).toEqual('dist/bar-server');
|
||||
expect(opts.main).toEqual('projects/bar/src/main.server.ts');
|
||||
expect(opts.tsConfig).toEqual('projects/bar/tsconfig.server.json');
|
||||
const configurations = targets.server.configurations;
|
||||
expect(configurations.production).toBeDefined();
|
||||
expect(configurations.production.fileReplacements).toBeDefined();
|
||||
const fileReplacements = targets.server.configurations.production.fileReplacements;
|
||||
expect(fileReplacements.length).toEqual(1);
|
||||
expect(fileReplacements[0].replace).toEqual('projects/bar/src/environments/environment.ts');
|
||||
expect(fileReplacements[0].with).toEqual('projects/bar/src/environments/environment.prod.ts');
|
||||
});
|
||||
|
||||
it('should add a server transition to BrowerModule import', () => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user