microsoft / microsoft/TypeScript

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

未關閉
#61,395 5 則留言 0 個 reaction 已指派 1 人 在 GitHub 檢視

@andrewbranch 已經在處理了。

開始於 2025年3月14日。

Needs Investigation
主要語言
Go
星號
111k
分支
14.3k
平均合併
2 天 4 小時
30 天內合併 PR
132

描述

🔎 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.

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。