简体   繁体   中英

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.

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"
}
// ...

This config should work. But it's tsconfig.json not tsconfig.js .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM