@@ -22,7 +22,11 @@ import {
22
22
} from '@angular-devkit/schematics' ;
23
23
import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks' ;
24
24
import { join } from 'node:path/posix' ;
25
- import { NodeDependencyType , addPackageJsonDependency } from '../utility/dependencies' ;
25
+ import {
26
+ NodeDependencyType ,
27
+ addPackageJsonDependency ,
28
+ getPackageJsonDependency ,
29
+ } from '../utility/dependencies' ;
26
30
import { JSONFile } from '../utility/json-file' ;
27
31
import { latestVersions } from '../utility/latest-versions' ;
28
32
import { relativePathToWorkspaceRoot } from '../utility/paths' ;
@@ -96,6 +100,7 @@ function addLibToWorkspaceFile(
96
100
options : LibraryOptions ,
97
101
projectRoot : string ,
98
102
projectName : string ,
103
+ hasZoneDependency : boolean ,
99
104
) : Rule {
100
105
return updateWorkspace ( ( workspace ) => {
101
106
workspace . projects . add ( {
@@ -121,7 +126,7 @@ function addLibToWorkspaceFile(
121
126
builder : Builders . BuildKarma ,
122
127
options : {
123
128
tsConfig : `${ projectRoot } /tsconfig.spec.json` ,
124
- polyfills : [ 'zone.js' , 'zone.js/testing' ] ,
129
+ polyfills : hasZoneDependency ? [ 'zone.js' , 'zone.js/testing' ] : undefined ,
125
130
} ,
126
131
} ,
127
132
} ,
@@ -172,9 +177,11 @@ export default function (options: LibraryOptions): Rule {
172
177
move ( libDir ) ,
173
178
] ) ;
174
179
180
+ const hasZoneDependency = getPackageJsonDependency ( host , 'zone.js' ) !== null ;
181
+
175
182
return chain ( [
176
183
mergeWith ( templateSource ) ,
177
- addLibToWorkspaceFile ( options , libDir , packageName ) ,
184
+ addLibToWorkspaceFile ( options , libDir , packageName , hasZoneDependency ) ,
178
185
options . skipPackageJson ? noop ( ) : addDependenciesToPackageJson ( ) ,
179
186
options . skipTsConfig ? noop ( ) : updateTsConfig ( packageName , './' + distRoot ) ,
180
187
options . skipTsConfig
0 commit comments