afriedman111
afriedman111

Reputation: 2331

angular 13 ng build library fails (ivy partial compilation mode)

Recently I was having a problem installing an npm package (that used node-gyp). I tried upgrading the minor version of node from version 16.13.0 to 16.13.1 and upgrading my angular cli from 13.0.2 to 13.2.0. Once I got the package to install I generated a library with ng g library new-library. I don't know what what actually broke it, but now whenever I try to build alibrary it produces an error. I try ng build my-lib and get the below error.

✖ Compiling with Angular sources in Ivy partial compilation mode.
Transform failed with 1 error:
error: Invalid version: "15.2-15.3"

I tried reverting the version of node and angular cli but it didn't fix the problem. I even reverted the code to its original state and I get the error now. Is this a problem with my environment? How do I fix this issue?

Upvotes: 25

Views: 32291

Answers (6)

Aman Kumar Gupta
Aman Kumar Gupta

Reputation: 3011

This is happening because the current version of your angular does not support the safari and ios version of 15.2-15.3.

This fix is available with angular version 13.2.1

But to fix this error in your version, what you have to do is to create a file in the root of your project named as .browserslistrc which will contain the following accepted browsers versions :

# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries

# For the full list of supported browsers by the Angular framework, please see:
# https://angular.io/guide/browser-support

# You can see what browsers were selected by your queries by running:
#   npx browserslist

last 1 Chrome version
last 1 Firefox version
last 2 Edge major versions
last 2 Safari major versions
last 2 iOS major versions
Firefox ESR
not IE 9-10 # Angular support for IE 9-10 has been deprecated and will be removed as of Angular v11. To opt-in, remove the 'not' prefix on this line.
not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.
not ios_saf 15.2-15.3
not safari 15.2-15.3

For more information on accepted browsers versions by angular you can refer :

https://angular.io/guide/browser-support

For bug issue thread visit

https://github.com/angular/angular-cli/issues/22606

Hope it will help you or somebody else...

Thanks!

Upvotes: 1

About Programmer
About Programmer

Reputation: 76

This was a bug in the Angular CLI that has been fixed. In your package.json, update @angular/cli to either 12.2.16 or 13.2.1.

Source: https://github.com/angular/angular-cli/issues/22606#issuecomment-1026097996

Upvotes: 6

A. Agius
A. Agius

Reputation: 1271

Please follow this Github issue: https://github.com/angular/angular-cli/issues/22606

As a workaround you can add the below to your browserslist configuration.

not safari 15.2-15.3 # TODO: remove once https://github.com/angular/angular-cli/issues/22606 is fixed.

Upvotes: 1

Nitesh
Nitesh

Reputation: 241

You can try this solution

open .browserslistrc and add

not ios_saf 15.2-15.3
not safari 15.2-15.3

Save the file and run again

ng build

Upvotes: 20

Daniel Ehrhardt
Daniel Ehrhardt

Reputation: 1032

Comment out Safari from the .browserslistrc File, if you use Angular. This is a better Solution until there is a fix.

# last 2 Safari major version

Upvotes: 8

m.shakeri
m.shakeri

Reputation: 1323

This is a bug in Angular CLI 13.2.0.

Temporary solution:

Removing content configurating .browserslistrc file from root project. more info

Upvotes: 0

Related Questions