microsoft / microsoft/TypeScript

Document how to use tsconfig-related APIs in the wiki

Aperta
#56,050 7 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Docs
Lingua principale
Go
Stelle
111k
Fork
14.3k
Merge medio
1g 19h
PR unite (30g)
117

Descrizione

🔎 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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Parti dall'esempio di createProgram dell'issue e dalle API relative a tsconfig a cui si fa riferimento, incluse findConfigFile e readConfigFile. Documenta nella wiki come queste API debbano essere usate con i file JavaScript, incluso il comportamento osservato dei file sorgente; il lavoro è completo quando l'uso pertinente e il comportamento previsto sono chiari per i lettori.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript, typescript
Ambito
documentation
Tipo di issue
Documentazione
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.