microsoft / microsoft/TypeScript

require() is generated in JS although there's no runtime code

Abierto
#61,395 5 comentarios 0 reacciones 1 asignado Ver en GitHub

@andrewbranch ya está trabajando en esto.

Desde el 14/3/2025.

Needs Investigation
Lenguaje dominante
Go
Estrellas
111k
Forks
14.3k
Merge medio
2 d 4 h
PR fusionados (30 d)
132

Descripción

🔎 Search Terms

require generated const enum
namespace require generated
namespace require const enum
namespace require
"export import" require

⏯ Playground Link

Multiple files, so can't use playground

💻 Code
// file1.ts
export namespace MyOtherNamespace {
    export const enum Yay {
        OK,
        KO
    }
}
// file2.ts
import { MyOtherNamespace } from "./file1";
export namespace MyNamespace {
    export import NS2 = MyOtherNamespace;
}
import { MyNamespace } from "./file2.ts";

const val = MyNamespace.NS2.Yay.KO
// Compiled code
const file2_1 = require("./file2"); // notice the variable name which is just "filename_1", as it is not used anywhere
const val = 1;
🙁 Actual behavior

Compiling an unused const file2_1 = require("./file2"); line

🙂 Expected behavior

Do not compile unused line.

Additional information about the issue

The problem is that this file is a types file, so it is installed only in develpment environment (npm install -D xxx) so in runtime it is failing because it can't find the required module.

If I modify the MyNamespace namespace to directly export a namespace instead of doing an export import it works, but we have a lot of namespaces so we have them separated into files, and couldn't find another way to export an imported namespace inside another namespace.

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.

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.