-
Notifications
You must be signed in to change notification settings - Fork 11.9k
Ivy workspaces #15320
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ivy workspaces #15320
Conversation
When FW flips the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just some minor comments, otherwise LGTM (pending CI passing after FW has flipped the switch).
@@ -147,6 +147,11 @@ function addAppToWorkspaceFile( | |||
tsConfig: `${projectRoot}/tsconfig.lib.json`, | |||
project: `${projectRoot}/ng-package.json`, | |||
}, | |||
configurations: { | |||
production: { | |||
tsConfig: `${projectRoot}/tsconfig.lib.prod.json`, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We also need a migration for this, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is already a separate PR for that, I made it separate since it can go in now in master. #15272
I also, created some utils, which would be needed for another schematic
await ng('new', 'test-project', '--skip-install', ...extraArgs); | ||
await expectFileToExist(join(process.cwd(), 'test-project')); | ||
process.chdir('./test-project'); | ||
|
||
if (!argv['ivy']) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At some point we should flip this flag, so that we have to opt-in VE tests instead of opt-in Ivy ones.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good idea. I will do it later today or tmr.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed offline, let’s tackle this in a separate PR were we enable the full test suit for Ivy and remove —ivy
and add —ve
so that all tests will run in ivy mode by default.
@@ -15,8 +15,6 @@ | |||
"annotateForClosureCompiler": true, | |||
"skipTemplateCodegen": true, | |||
"strictMetadataEmit": true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: the below options are not needed by ngtsc compiler, but we will leave them to make opt-out easier.
skipTemplateCodegen: true,
strictMetadataEmit: true,
enableResourceInlining: true,
Since `NGCC` is non incremental and in library projects we have the original TS sources we don't need to build a library using the `VE` and transform it using `NGCC`. Instead we can build the library using `NGTSC` (Ivy) directly as this enables faster incremental compilations and a better development experience. Libraries now have a `production` configuration, which enabled `VE` compilations. As it is not recommended to publish NGTSC (Ivy) built libraries to NPM repositories, since Ivy libraries are not backwards compatible with the legacy View Engine.
With this change we remove the enableIvy option as now we only support generating Ivy application. Users who want to create a VE applications should follow the opt-out guide
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
feat(@schematics/angular): introduce Ivy libraries for development
Since
NGCC
is non incremental and in library projects we have the original TS sourceswe don't need to build a library using the
VE
and transform it usingNGCC
. Instead we can build the library usingNGTSC
(Ivy) directlyas this enables faster incremental compilations and a better development experience.
Libraries now have a
production
configuration, which enabledVE
compilations. As it is not recommended to publish NGTSC (Ivy)built libraries to NPM repositories, since Ivy libraries are not backwards compatible with the legacy View Engine.
feat(@schematics/angular): remove enableIvy option
With this change we remove the enableIvy option as now we only support generating Ivy application. Users who want to create a VE applications should follow the opt-out guide