microsoft / microsoft/TypeScript

Document how to use tsconfig-related APIs in the wiki

オープン
#56,050 コメント 7 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

Docs
主要言語
Go
スター
111k
フォーク
14.4k
平均マージ
1日 19時間
マージ済み PR(30日)
117

説明

🔎 Search Terms

"createProgram" "compiler" "compiler api" "js files createProgram" "js compiler api" "js files compiler" "programmatic compiler js"

🕗 Version & Regression Information

Give my project:

my-project/
├─ src/
│  ├─ index.js
├─ tsconfig.json

The following code:

import ts from 'typescript';

let tsConfigFile = ts.findConfigFile(
  process.cwd(),
  ts.sys.fileExists,
  "tsconfig.json"
);
const { config } = ts.readConfigFile(tsConfigFile, ts.sys.readFile);

const program = ts.createProgram(['src/index.js'], config);

program.getSourceFiles().forEach((sf) => {
  console.log(1, sf.fileName);
});

Where tsconfig.json looks like:

{
  "compilerOptions": {
    "strict": true,
    "outDir": "./dist-types",
    "target": "ESNext",
    "allowSyntheticDefaultImports": true,
    "moduleResolution": "NodeNext",
    "module": "NodeNext",
    "lib": ["ESNext", "DOM"],
    "declaration": true,
    "emitDeclarationOnly": true,
    "allowJs": true,
    "checkJs": true,
    "skipLibCheck": true,
    "verbatimModuleSyntax": true
  },
  "include": [
    "src/index.js"
  ],
  "exclude": ["node_modules"],
}

Outputs:

1 /Users/au87xu/cem-typescript-issue/node_modules/typescript/lib/lib.d.ts
1 /Users/au87xu/cem-typescript-issue/node_modules/typescript/lib/lib.es5.d.ts
1 /Users/au87xu/cem-typescript-issue/node_modules/typescript/lib/lib.dom.d.ts
1 /Users/au87xu/cem-typescript-issue/node_modules/typescript/lib/lib.webworker.importscripts.d.ts
1 /Users/au87xu/cem-typescript-issue/node_modules/typescript/lib/lib.scripthost.d.ts
1 /Users/au87xu/cem-typescript-issue/node_modules/typescript/lib/lib.decorators.d.ts
1 /Users/au87xu/cem-typescript-issue/node_modules/typescript/lib/lib.decorators.legacy.d.ts

but src/index.js is missing from the source files. I feel like this did work in the past, or at least should work on regular js files as well.

⏯ Playground Link

n/a

💻 Code
// Your code here
🙁 Actual behavior

ts.createProgram does not include src/index.js

🙂 Expected behavior

ts.createProgram does include src/index.js

Additional information about the issue

No response

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

issue の createProgram の例と、参照されている tsconfig 関連 API(findConfigFile と readConfigFile を含む)から始めます。これらの API を JavaScript ファイルでどのように使用すべきかを、観測されたソースファイルの動作も含めて wiki に記載します。関連する使用方法と期待される動作が読者にとって明確になれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
javascript, typescript
領域
documentation
issue の種類
ドキュメント
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。