Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Bug: [ngtools] Replace resource transformer issue with conditional `templateUrl`

Abierto
#27,611 5 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Tranquilo
Stack tecnológico
angular, typescript, webpack

Línea de trabajo

Empieza ejecutando packages/ngtools/webpack/src/transformers/replace_resources_spec.ts y leyendo el transformador replace_resources.ts relacionado. Usa la reproducción fallida de templateUrl condicional y compara la salida ESM y CommonJS generada. La tarea está terminada cuando ambas formas transforman correctamente el recurso condicional y el test pasa.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

area: @angular/build area: @ngtools/webpack freq1: low severity2: inconvenient type: bug/fix
Command

test

Is this a regression?
  • Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was

No response

Description

When having conditional templateUrl like this

  templateUrl:
    true === true
        ? './dashboard.component.html'
        : './dashboard.component.copy.html',

replace_resources.ts couldn't transform into proper codes (either require or import)

Minimal Reproduction
// esm

//...
AppComponent = __decorate([
    Component({
        selector: 'app-root',
        templateUrl: true === true
            ? './app.component.html'
            : './app.component.copy.html',
        styles: [__NG_CLI_RESOURCE__0, __NG_CLI_RESOURCE__1]
    })
], AppComponent);
// commonjs

//...
exports.AppComponent = AppComponent = tslib_1.__decorate([
    (0, core_1.Component)({
        selector: 'app-root',
        templateUrl: true === true
            ? './app.component.html'
            : './app.component.copy.html',
        styles: [require("./app.component.css?ngResource"), require("./app.component.2.css?ngResource")]
    })
], AppComponent);
Exception or Error
Component 'AppComponent' is not resolved:
     - templateUrl: ./app.component.html
    Did you run and wait for 'resolveComponentResources()'?


### Your Environment

```text
Angular CLI: 17.3.6
Node: 20.12.2
Package Manager: yarn 1.22.17
OS: darwin x64

Angular: 18.0.0-rc.0
... animations, cdk, common, compiler, compiler-cli, core, forms
... localize, material, platform-browser
... platform-browser-dynamic, platform-server, router
... service-worker

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.0.0-EXPERIMENTAL-PLACEHOLDER
@angular-devkit/core         0.0.0-PLACEHOLDER
@angular-devkit/schematics   0.0.0-PLACEHOLDER
@angular/bazel               18.1.0-next.0+sha-1872fcd
@angular/build-tooling       0.0.0-e6e98d32d7d4d350ecf4ec10ad9c7e75198daabd
@angular/ng-dev              <error>
@schematics/angular          0.0.0-PLACEHOLDER
ng-packagr                   18.0.0-rc.0
rxjs                         7.8.1
typescript                   5.4.5
webpack                      5.91.0
zone.js                      0.14.4
Anything else relevant?

Related to this bug https://github.com/thymikee/jest-preset-angular/issues/1866

Lenguaje dominante
TypeScript
Estrellas
27k
Forks
11.8k
Merge medio
16 h 35 min
PR fusionados (30 d)
176

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de angular/angular-cli

Todos los issues de angular/angular-cli

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.