Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to compile Typescript to JS that uses ES6 modules?

My tsconfig.json file contains

{
    "compilerOptions": {
        "module": "esnext",
        "target": "esnext",
    }
}

But the compiled JS files still use exports/require syntax.

How do I fix this?

EDIT:

My directory structure is as follows

- APIs/
  - emails/
    - sendEmail.ts
  - oldFiles/
    - file1.js
    - file2.js
- index.js
- tsconfig.json
- package.json

I am running tsc using the command tsc APIs/emails/sendEmail.ts from the root directory.

like image 289
Will Zap Avatar asked Oct 24 '25 14:10

Will Zap


1 Answers

Those settings are correct, so most likely you're not actually using that tsconfig.json file. For instance, if you do tsc someFile.ts, tsc doesn't use the tsconfig.json (surprisingly). Your best bet is probably to add an includes to your configuration (so tsc knows what it's compiling) and then compile simply by invoking tsc, which will look for a local tsconfig.json.

{
    "compilerOptions": {
        "module": "esnext",
        "target": "esnext"
    },
    "include": ["**/*.ts"]
}

Then in package.json (for instance):

// ...
"scripts": {
    "build": "tsc"
}
// ...
like image 147
T.J. Crowder Avatar answered Oct 27 '25 03:10

T.J. Crowder