in modules/common/schematics/ng-add/index.ts [138:177]
function updateWorkspaceRule(options: NgAddOptions): Rule {
return updateWorkspace((workspace) => {
const project = workspace.projects.get(options.project);
if (options.ssr) {
project.targets.add({
name: 'server',
builder: '@angular-devkit/build-angular:server',
options: {
outputPath: `dist/${options.project}/server`,
main: posix.join(project.sourceRoot ?? '', 'server.ts'),
tsConfig: posix.join(project.root, 'tsconfig.server.json'),
bundleDependencies: false,
optimization: false,
},
});
const buildTarget = project.targets.get('build');
if (project.targets.get('build')?.options) {
buildTarget.options.outputPath = `dist/${options.project}/browser`;
}
}
if (options.prerender) {
project.targets.add({
name: 'prerender',
builder: '@nguniversal/builders:static-generator',
defaultConfiguration: 'production',
options: {},
configurations: {
production: {
browserTarget: `${options.project}:build:production`,
},
development: {
browserTarget: `${options.project}:build:development`,
},
},
});
}
});
}