angular / angular-cli

CLI tool for Angular
https://cli.angular.io
MIT License
26.76k stars 11.98k forks source link

extract-i18n does not extract message from files loaded only server side #22871

Open manzonif opened 2 years ago

manzonif commented 2 years ago

🐞 Bug report

Command (mark with an x)

Is this a regression?

Yes, the previous version in which this bug was not present was: .... ### Description The extraction tool does not process files that do not have a direct dependency on the app.module, or, generally, on the browser side. In my case an abstract service is replaced by two versions of the service, one browser side, the other server side. The server-side one is ignored during the extraction process. ## πŸ”¬ Minimal Reproduction

I made a simple repro app that reproduce the problem. Just run extract-i18n to see that message in server-service.service.ts is ignored.

πŸ”₯ Exception or Error





🌍 Your Environment




Angular: 12.0.1
... animations, cdk, cli, common, compiler, compiler-cli, core
... forms, language-service, material, platform-browser
... platform-browser-dynamic, platform-server, router
... service-worker

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.1200.5
@angular-devkit/build-angular     12.0.5
@angular-devkit/build-optimizer   0.1200.5
@angular-devkit/core              12.0.1
@angular-devkit/schematics        12.0.1
@angular/flex-layout              12.0.0-beta.34
@angular/localize                 12.0.5
@nguniversal/builders             12.1.3
@nguniversal/common               12.0.0
@nguniversal/express-engine       12.0.0
@schematics/angular               12.0.1
rxjs                              7.4.0
typescript                        4.2.4

Anything else relevant?

alan-agius4 commented 2 years ago

What is happening here is that extract-i18n requires a browser builder target (build) which uses the tsconfig.app.json. This tsconfig doesn't include the main.server.ts as entry-point.

At the moment, extraction for server target is not a supported use case and hence I am marking this as a feature request.

angular-robot[bot] commented 2 years ago

This feature request is now candidate for our backlog! In the next phase, the community has 60 days to upvote. If the request receives more than 20 upvotes, we'll move it to our consideration list.

You can find more details about the feature request process in our documentation.

manzonif commented 2 years ago

I understand, thanks. Do you think there is some work around to allow for that extraction?

angular-robot[bot] commented 2 years ago

Just a heads up that we kicked off a community voting process for your feature request. There are 20 days until the voting process ends.

Find more details about Angular's feature request process in our documentation.

angular-robot[bot] commented 2 years ago

Thank you for submitting your feature request! Looks like during the polling process it didn't collect a sufficient number of votes to move to the next stage.

We want to keep Angular rich and ergonomic and at the same time be mindful about its scope and learning journey. If you think your request could live outside Angular's scope, we'd encourage you to collaborate with the community on publishing it as an open source package.

You can find more details about the feature request process in our documentation.

alexanderpivanov commented 2 years ago

@manzonif Have you found some around?

manzonif commented 2 years ago

@alexanderpivanov The only way I found was to add a dependency as a provider, to a dummy lazy module, which never gets loaded.