title: When I change "module" in tsconfig.json to 'ESNext' and "type" in package.json to 'module', I get an error
body: <p>When I compile my TS code to JS, I want the JS to use ESNext import/export and not CommonJS import/export. When I change &quot;module&quot; in tsconfig.json to 'ESNext' and &quot;type&quot; in package.json to 'module' for this purpose, I get an error:</p>
  <pre><code>TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension &quot;.ts&quot; for G:\TechPro424\Other\Documents\GitHub\MultiBot\src\index.ts
      at new NodeError (node:internal/errors:371:5)
      at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:87:11)
      at defaultGetFormat (node:internal/modules/esm/get_format:102:38)
      at defaultLoad (node:internal/modules/esm/load:21:14)
      at ESMLoader.load (node:internal/modules/esm/loader:359:26)
      at ESMLoader.moduleProvider (node:internal/modules/esm/loader:280:58)
      at new ModuleJob (node:internal/modules/esm/module_job:66:26)
      at ESMLoader.#createModuleJob (node:internal/modules/esm/loader:297:17)
      at ESMLoader.getModuleJob (node:internal/modules/esm/loader:261:34)
      at async Promise.all (index 0) {
    code: 'ERR_UNKNOWN_FILE_EXTENSION'
  }
  </code></pre>
  <p><code>index.ts</code> is the file that I start to run the program.</p>
  <p><em><strong>My tsconfig.json:</strong></em></p>
  <pre><code>{
      &quot;compilerOptions&quot;: {
          /* Visit https://aka.ms/tsconfig.json to read more about this file */
  
          /* Projects */
          // &quot;incremental&quot;: true,                              /* Enable incremental compilation */
          // &quot;composite&quot;: true,                                /* Enable constraints that allow a TypeScript project to be used with project references. */
          // &quot;tsBuildInfoFile&quot;: &quot;./&quot;,                          /* Specify the folder for .tsbuildinfo incremental compilation files. */
          // &quot;disableSourceOfProjectReferenceRedirect&quot;: true,  /* Disable preferring source files instead of declaration files when referencing composite projects */
          // &quot;disableSolutionSearching&quot;: true,                 /* Opt a project out of multi-project reference checking when editing. */
          // &quot;disableReferencedProjectLoad&quot;: true,             /* Reduce the number of projects loaded automatically by TypeScript. */
  
          /* Language and Environment */
          &quot;target&quot;: &quot;ESNext&quot;,                                  /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
          &quot;lib&quot;: [&quot;ESNext&quot;, &quot;DOM&quot;],                                        /* Specify a set of bundled library declaration files that describe the target runtime environment. */
          // &quot;jsx&quot;: &quot;preserve&quot;,                                /* Specify what JSX code is generated. */
          // &quot;experimentalDecorators&quot;: true,                   /* Enable experimental support for TC39 stage 2 draft decorators. */
          // &quot;emitDecoratorMetadata&quot;: true,                    /* Emit design-type metadata for decorated declarations in source files. */
          // &quot;jsxFactory&quot;: &quot;&quot;,                                 /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */
          // &quot;jsxFragmentFactory&quot;: &quot;&quot;,                         /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
          // &quot;jsxImportSource&quot;: &quot;&quot;,                            /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */
          // &quot;reactNamespace&quot;: &quot;&quot;,                             /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */
          // &quot;noLib&quot;: true,                                    /* Disable including any library files, including the default lib.d.ts. */
          // &quot;useDefineForClassFields&quot;: true,                  /* Emit ECMAScript-standard-compliant class fields. */
  
          /* Modules */
          &quot;module&quot;: &quot;ESNext&quot;,                                /* Specify what module code is generated. */
          &quot;rootDir&quot;: &quot;./src&quot;,                                  /* Specify the root folder within your source files. */
          &quot;moduleResolution&quot;: &quot;node&quot;,                       /* Specify how TypeScript looks up a file from a given module specifier. */
          // &quot;baseUrl&quot;: &quot;./&quot;,                                  /* Specify the base directory to resolve non-relative module names. */
          // &quot;paths&quot;: {},                                      /* Specify a set of entries that re-map imports to additional lookup locations. */
          // &quot;rootDirs&quot;: [],                                   /* Allow multiple folders to be treated as one when resolving modules. */
          // &quot;typeRoots&quot;: [],                                  /* Specify multiple folders that act like `./node_modules/@types`. */
          // &quot;types&quot;: [],                                      /* Specify type package names to be included without being referenced in a source file. */
          // &quot;allowUmdGlobalAccess&quot;: true,                     /* Allow accessing UMD globals from modules. */
          &quot;resolveJsonModule&quot;: true,                        /* Enable importing .json files */
          // &quot;noResolve&quot;: true,                                /* Disallow `import`s, `require`s or `&lt;reference&gt;`s from expanding the number of files TypeScript should add to a project. */
  
          /* JavaScript Support */
           &quot;allowJs&quot;: true,                                  /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
           &quot;checkJs&quot;: true,                                  /* Enable error reporting in type-checked JavaScript files. */
          // &quot;maxNodeModuleJsDepth&quot;: 1,                        /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */
  
          /* Emit */
          &quot;declaration&quot;: true,                              /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
          &quot;declarationMap&quot;: true,                           /* Create sourcemaps for d.ts files. */
          // &quot;emitDeclarationOnly&quot;: true,                      /* Only output d.ts files and not JavaScript files. */
          &quot;sourceMap&quot;: true,                                /* Create source map files for emitted JavaScript files. */
          // &quot;outFile&quot;: &quot;./&quot;,                                  /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */
          &quot;outDir&quot;: &quot;./dist&quot;,                                   /* Specify an output folder for all emitted files. */
          // &quot;removeComments&quot;: false,                           /* Disable emitting comments. */
          // &quot;noEmit&quot;: true,                                   /* Disable emitting files from a compilation. */
          // &quot;importHelpers&quot;: true,                            /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
          // &quot;importsNotUsedAsValues&quot;: &quot;remove&quot;,               /* Specify emit/checking behavior for imports that are only used for types */
          // &quot;downlevelIteration&quot;: true,                       /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
          &quot;sourceRoot&quot;: &quot;./src&quot;,                                 /* Specify the root path for debuggers to find the reference source code. */
          // &quot;mapRoot&quot;: &quot;&quot;,                                    /* Specify the location where debugger should locate map files instead of generated locations. */
          // &quot;inlineSourceMap&quot;: true,                          /* Include sourcemap files inside the emitted JavaScript. */
          // &quot;inlineSources&quot;: true,                            /* Include source code in the sourcemaps inside the emitted JavaScript. */
          // &quot;emitBOM&quot;: true,                                  /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
          // &quot;newLine&quot;: &quot;crlf&quot;,                                /* Set the newline character for emitting files. */
          // &quot;stripInternal&quot;: true,                            /* Disable emitting declarations that have `@internal` in their JSDoc comments. */
          // &quot;noEmitHelpers&quot;: true,                            /* Disable generating custom helper functions like `__extends` in compiled output. */
          // &quot;noEmitOnError&quot;: true,                            /* Disable emitting files if any type checking errors are reported. */
          // &quot;preserveConstEnums&quot;: true,                       /* Disable erasing `const enum` declarations in generated code. */
          &quot;declarationDir&quot;: &quot;./Typings&quot;,                           /* Specify the output directory for generated declaration files. */
          // &quot;preserveValueImports&quot;: true,                     /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
  
          /* Interop Constraints */
          // &quot;isolatedModules&quot;: true,                          /* Ensure that each file can be safely transpiled without relying on other imports. */
          // &quot;allowSyntheticDefaultImports&quot;: true,             /* Allow 'import x from y' when a module doesn't have a default export. */
          &quot;esModuleInterop&quot;: true,                             /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */
          // &quot;preserveSymlinks&quot;: true,                         /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
          &quot;forceConsistentCasingInFileNames&quot;: true,            /* Ensure that casing is correct in imports. */
  
          /* Type Checking */
          &quot;strict&quot;: true,                                      /* Enable all strict type-checking options. */
          // &quot;noImplicitAny&quot;: true,                            /* Enable error reporting for expressions and declarations with an implied `any` type.. */
          // &quot;strictNullChecks&quot;: true,                         /* When type checking, take into account `null` and `undefined`. */
          // &quot;strictFunctionTypes&quot;: true,                      /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
          // &quot;strictBindCallApply&quot;: true,                      /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */
          // &quot;strictPropertyInitialization&quot;: true,             /* Check for class properties that are declared but not set in the constructor. */
          // &quot;noImplicitThis&quot;: true,                           /* Enable error reporting when `this` is given the type `any`. */
          // &quot;useUnknownInCatchVariables&quot;: true,               /* Type catch clause variables as 'unknown' instead of 'any'. */
          // &quot;alwaysStrict&quot;: true,                             /* Ensure 'use strict' is always emitted. */
          // &quot;noUnusedLocals&quot;: true,                           /* Enable error reporting when a local variables aren't read. */
          // &quot;noUnusedParameters&quot;: true,                       /* Raise an error when a function parameter isn't read */
          // &quot;exactOptionalPropertyTypes&quot;: true,               /* Interpret optional property types as written, rather than adding 'undefined'. */
          //&quot;noImplicitReturns&quot;: true,                        /* Enable error reporting for codepaths that do not explicitly return in a function. */
          // &quot;noFallthroughCasesInSwitch&quot;: true,               /* Enable error reporting for fallthrough cases in switch statements. */
          // &quot;noUncheckedIndexedAccess&quot;: true,                 /* Include 'undefined' in index signature results */
          // &quot;noImplicitOverride&quot;: true,                       /* Ensure overriding members in derived classes are marked with an override modifier. */
          // &quot;noPropertyAccessFromIndexSignature&quot;: true,       /* Enforces using indexed accessors for keys declared using an indexed type */
          // &quot;allowUnusedLabels&quot;: true,                        /* Disable error reporting for unused labels. */
          // &quot;allowUnreachableCode&quot;: true,                     /* Disable error reporting for unreachable code. */
  
          /* Completeness */
          &quot;skipDefaultLibCheck&quot;: false,                      /* Skip type checking .d.ts files that are included with TypeScript. */
          &quot;skipLibCheck&quot;: false                                 /* Skip type checking all .d.ts files. */
      },
      &quot;include&quot;: [&quot;./src/**/*.ts&quot;]
  }
  </code></pre>
  <p><em><strong>My package.json:</strong></em></p>
  <pre><code>    {
          &quot;name&quot;: &quot;multibot&quot;,
          &quot;version&quot;: &quot;0.0.1&quot;,
          &quot;description&quot;: &quot;A multi-purpose bot without premiums.&quot;,
          &quot;main&quot;: &quot;dist/index.js&quot;,
          &quot;type&quot;: &quot;module&quot;,
          &quot;private&quot;: true,
          &quot;scripts&quot;: {
              &quot;build&quot;: &quot;tsc&quot;,
              &quot;start&quot;: &quot;nodemon&quot;
          },
          &quot;author&quot;: &quot;TechPro424#5512, That Genz Gamer#6557&quot;,
          &quot;repository&quot;: {
              &quot;type&quot;: &quot;git&quot;,
              &quot;url&quot;: &quot;git+https://github.com/TechPro424/MultiBot.git&quot;
          },
          &quot;bugs&quot;: {
              &quot;url&quot;: &quot;https://github.com/TechPro424/MultiBot/issues&quot;
          },
          &quot;homepage&quot;: &quot;https://github.com/TechPro424/MultiBot&quot;,
          &quot;license&quot;: &quot;ISC&quot;,
          &quot;dependencies&quot;: {
              &quot;discord.js&quot;: &quot;^13.6.0&quot;,
              &quot;dotenv&quot;: &quot;^14.2.0&quot;,
              &quot;mongoose&quot;: &quot;^6.1.8&quot;,
              &quot;node-fetch&quot;: &quot;2.6.1&quot;
          }
  
  }
  </code></pre>
  <p>Why is this? Please help me out.</p>