angular / angular/angular-cli

i18n support in Angular libraries

Aberta
#17,140 40 comentários 35 reações 0 responsáveis Ver no GitHub
devkit/build-angular:i18n devkit/build-angular:library feature feature: under consideration
Linguagem predominante
TypeScript
Estrelas
27k
Forks
11.8k
Merge médio
14h 23min
PRs com merge (30d)
162

Descrição

# 🐞 Bug report

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

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

### Is this a regression?

No. Related functionaliy only available with new i18n capabilities of angular 9.

### Description

I want to use ng xi18n command to extract messages for i18n tags which are part of a library project which is part of a monrepo setup created by the cli. According to docs at
https://angular.io/cli/xi18n this is supposed to be possible

> ng xi18n \
> \ The name of the project to build. Can be an application or a library.

## 🔬 Minimal Reproduction

1. create project: `ng new lib-i18n`
1. add localize: `ng add @angular/localize`
1. generate library: `ng g library my-lib`
1. add i18n attribute in my-lib.component.ts
```


my-lib works!


```
1. run `ng xi18n my-lib`: Result will be
`An unhandled exception occurred: Project 'my-lib' does not support the 'extract-i18n' target.`
After adding corresponding extract-i18n target in angular.json, error output as below.

I created a minimal demo project which incorporates the scenario describe above. It is located here:
https://github.com/multimike77/lib-i18n-issue

Checkout and run `npm install`. Then run `ng xi18n my-lib` and it should produce error as below.

## 🔥 Exception or Error



An unhandled exception occurred: The "path" argument must be of type string. Received undefined

[error] TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined
at validateString (internal/validators.js:117:11)
at Object.resolve (path.js:980:7)
at Object.getCommonConfig (/Users/.../lib-i18n/node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/webpack-configs/common.js:390:24)
at /Users/.../lib-i18n/node_modules/@angular-devkit/build-angular/src/extract-i18n/index.js:91:27
at generateWebpackConfig (/Users/.../lib-i18n/node_modules/@angular-devkit/build-angular/src/utils/webpack-browser-config.js:62:22)
at async Object.generateBrowserWebpackConfigFromContext (/Users/.../lib-i18n/node_modules/@angular-devkit/build-angular/src/utils/webpack-browser-config.js:137:20)
at async execute (/Users/.../lib-i18n/node_modules/@angular-devkit/build-angular/src/extract-i18n/index.js:73:24)

## 🌍 Your Environment



Angular CLI: 9.0.4
Node: 12.16.1
OS: darwin x64

Angular: 9.0.4
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, localize, platform-browser
... platform-browser-dynamic, router
Ivy Workspace: Yes

Package Version
------------------------------------------------------------
@angular-devkit/architect 0.900.4
@angular-devkit/build-angular 0.900.4
@angular-devkit/build-ng-packagr 0.900.4
@angular-devkit/build-optimizer 0.900.4
@angular-devkit/build-webpack 0.900.4
@angular-devkit/core 9.0.4
@angular-devkit/schematics 9.0.4
@ngtools/webpack 9.0.4
@schematics/angular 9.0.4
@schematics/update 0.900.4
ng-packagr 9.0.2
rxjs 6.5.4
typescript 3.7.5
webpack 4.41.2

**Anything else relevant?**

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Reproduza o problema no projeto lib-i18n-issue vinculado com npm install e ng xi18n my-lib. Comece lendo @angular-devkit/build-angular/src/extract-i18n/index.js e o caminho de common.js referenciado no stack trace. Está concluído quando xi18n aceita um projeto de biblioteca e extrai suas mensagens i18n sem os erros de target ou path.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
angular, node.js, typescript
Domínio
build-system, cli, internationalization
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Pouca atividade
Clareza
Razoavelmente clara
Facilidade para iniciantes
52/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.