@@ -22,7 +22,11 @@ import {
2222} from '@angular-devkit/schematics' ;
2323import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks' ;
2424import { join } from 'node:path/posix' ;
25- import { NodeDependencyType , addPackageJsonDependency } from '../utility/dependencies' ;
25+ import {
26+ NodeDependencyType ,
27+ addPackageJsonDependency ,
28+ getPackageJsonDependency ,
29+ } from '../utility/dependencies' ;
2630import { JSONFile } from '../utility/json-file' ;
2731import { latestVersions } from '../utility/latest-versions' ;
2832import { relativePathToWorkspaceRoot } from '../utility/paths' ;
@@ -96,6 +100,7 @@ function addLibToWorkspaceFile(
96100 options : LibraryOptions ,
97101 projectRoot : string ,
98102 projectName : string ,
103+ hasZoneDependency : boolean ,
99104) : Rule {
100105 return updateWorkspace ( ( workspace ) => {
101106 workspace . projects . add ( {
@@ -121,7 +126,7 @@ function addLibToWorkspaceFile(
121126 builder : Builders . BuildKarma ,
122127 options : {
123128 tsConfig : `${ projectRoot } /tsconfig.spec.json` ,
124- polyfills : [ 'zone.js' , 'zone.js/testing' ] ,
129+ polyfills : hasZoneDependency ? [ 'zone.js' , 'zone.js/testing' ] : undefined ,
125130 } ,
126131 } ,
127132 } ,
@@ -172,9 +177,11 @@ export default function (options: LibraryOptions): Rule {
172177 move ( libDir ) ,
173178 ] ) ;
174179
180+ const hasZoneDependency = getPackageJsonDependency ( host , 'zone.js' ) !== null ;
181+
175182 return chain ( [
176183 mergeWith ( templateSource ) ,
177- addLibToWorkspaceFile ( options , libDir , packageName ) ,
184+ addLibToWorkspaceFile ( options , libDir , packageName , hasZoneDependency ) ,
178185 options . skipPackageJson ? noop ( ) : addDependenciesToPackageJson ( ) ,
179186 options . skipTsConfig ? noop ( ) : updateTsConfig ( packageName , './' + distRoot ) ,
180187 options . skipTsConfig
0 commit comments