angular / angular/angular-cli

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

Open
#22,871 7 comments 5 reactions 0 assignees View on GitHub
area: @angular-devkit/build-angular devkit/build-angular:i18n feature feature: insufficient votes
Dominant language
TypeScript
Stars
27k
Forks
11.8k
Avg merge
14h 23m
Merged PRs (30d)
162

Description

# 🐞 Bug report

### Command (mark with an `x`)

- [ ] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [ ] generate
- [ ] add
- [ ] update
- [ ] lint
- [x ] extract-i18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

### 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](https://github.com/manzonif/ng-extract-i18n-server) that reproduce the problem.
Just run extract-i18n to see that message in [server-service.service.ts](https://github.com/manzonif/ng-extract-i18n-server/blob/master/src/app/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?**

Contributor guide

Open the contributing guide

Research direction

Run extract-i18n in the linked repro app and compare its output with the message in server-service.service.ts. Trace how the command discovers files that are not directly dependent on app.module or the browser-side code. Done means messages from the server-side service are included in extraction output.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
localization, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.