From 3afdab21a0f0307dcd2be1b44a868ea3d7a8938c Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Tue, 28 May 2019 19:38:55 +0200 Subject: [PATCH] fix(@schematics/angular): add migration to update `web-animations-js` polyfill Previous versions rely on `this` which breaks differential loading since it's `undefined` when using script tags with type module. Fixes #14518 --- .../angular/migrations/update-8/index.ts | 4 ++-- ...pdate-builders.ts => update-dependencies.ts} | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) rename packages/schematics/angular/migrations/update-8/{update-builders.ts => update-dependencies.ts} (74%) diff --git a/packages/schematics/angular/migrations/update-8/index.ts b/packages/schematics/angular/migrations/update-8/index.ts index b3cedee3e8..6e84be4837 100644 --- a/packages/schematics/angular/migrations/update-8/index.ts +++ b/packages/schematics/angular/migrations/update-8/index.ts @@ -12,7 +12,7 @@ import { updatePackageJson, updateTsLintConfig } from './codelyzer-5'; import { updateES5Projects } from './differential-loading'; import { dropES2015Polyfills } from './drop-es6-polyfills'; import { removeAngularHttp } from './remove-angular-http'; -import { updateBuilders } from './update-builders'; +import { updateDependencies } from './update-dependencies'; export { updateLazyModulePaths } from './update-lazy-module-paths'; @@ -23,7 +23,7 @@ export default function(): Rule { updatePackageJson(), dropES2015Polyfills(), updateES5Projects(), - updateBuilders(), + updateDependencies(), removeAngularHttp(), (tree, context) => { const packageChanges = tree.actions.some(a => a.path.endsWith('/package.json')); diff --git a/packages/schematics/angular/migrations/update-8/update-builders.ts b/packages/schematics/angular/migrations/update-8/update-dependencies.ts similarity index 74% rename from packages/schematics/angular/migrations/update-8/update-builders.ts rename to packages/schematics/angular/migrations/update-8/update-dependencies.ts index de83b3b832..5f29c6d708 100644 --- a/packages/schematics/angular/migrations/update-8/update-builders.ts +++ b/packages/schematics/angular/migrations/update-8/update-dependencies.ts @@ -9,7 +9,7 @@ import { Tree } from '@angular-devkit/schematics'; import { addPackageJsonDependency, getPackageJsonDependency } from '../../utility/dependencies'; import { latestVersions } from '../../utility/latest-versions'; -export function updateBuilders() { +export function updateDependencies() { return (host: Tree) => { let current = getPackageJsonDependency(host, '@angular-devkit/build-angular'); if (current && current.version !== latestVersions.DevkitBuildAngular) { @@ -49,5 +49,20 @@ export function updateBuilders() { }, ); } + + // FIXME: change to ^2.3.2 as soon as it's released with the pr208 fix + const webAnimationsJsVersion = 'github:angular/web-animations-js#release_pr208'; + current = getPackageJsonDependency(host, 'web-animations-js'); + if (current && current.version !== webAnimationsJsVersion) { + addPackageJsonDependency( + host, + { + type: current.type, + name: 'web-animations-js', + version: webAnimationsJsVersion, + overwrite: true, + }, + ); + } }; }