The Angular team has announced it will be deprecating View Engine in Angular 12, but that this change won’t require most developers to take any action. View Engine is Angular’s legacy compilation and rendering pipeline.
It is being replaced by Ivy, which has been the default pipeline for developers for the past year. The goal of Ivy is to make Angular simpler, faster, and easier to maintain.
When it first enabled Ivy in Angular 9, the team developed a compatibility compiler called ngcc that ensures backward compatibility with libraries that use View Engine. This will ensure that even once the legacy compilation and rendering pipeline is deprecated, libraries that depend on it will still work.
“Over time with the new Ivy Library Distribution on, both library and application developers will start seeing fewer ngcc compilations and, therefore, have better development experience,” Minko Gechev, senior developer relations engineer at Google, wrote in a post.
According to the team, most Angular developers have switched over to using Ivy, which is what made them make the decision to deprecate the engine.
All Angular libraries are currently still in the legacy compilation and rendering pipeline format, and according to the team, developers can use those libraries in Ivy applications and libraries, but View Engine libraries can’t depend on libraries. During the transition, libraries will continue to be distributed in the legacy format, but when Angular 13 is released and a majority of third-party libraries are using Ivy, it will transition Angular and its components too.
The team noted that the change only applies to new applications and libraries and that no action is needed for existing projects, and shouldn’t impact developers. For those with libraries that legacy applications or libraries depend upon, they recommend to continue distributing them in a View Engine format and to ensure they don’t opt into the Ivy distribution until all dependent libraries have moved to Ivy.