title: ts-node execute typescript with module import and module defined
body: <p>I try to initialize database base via typescript.</p>
  <p>my ts is like:</p>
  <pre><code>import { User, UserRole } from '../entity/User';
  import crypto from 'crypto';
  import {dbManager, pwhash } from '..';
  
  async function inituser() 
  {
      const user = new User();
      user.email = 'sheng.lu@mq.edu.au';
      user.own_organization = []
      user.salt = crypto.randomBytes(16).toString('hex');
      user.password = pwhash(&quot;password&quot;, user.salt);
      user.role = UserRole.admin;
      await dbManager.save(user);
      const duser = await dbManager.findOne(User);
      return duser;
  }
  const duser = inituser();
  
  console.log(&quot;Loaded users: &quot;, duser);
  </code></pre>
  <p>when I try to run the script by ts-node like:</p>
  <pre><code>npx ts-node db/initializers/inituser.ts
  </code></pre>
  <p>there is error for:</p>
  <pre><code>SyntaxError: Cannot use import statement outside a module
      at wrapSafe (internal/modules/cjs/loader.js:1167:16)
      at Module._compile (internal/modules/cjs/loader.js:1215:27)
      at Module.m._compile (/usr/lib/node_modules/ts-node/src/index.ts:858:23)
      at Module._extensions..js (internal/modules/cjs/loader.js:1272:10)
      at Object.require.extensions.&lt;computed&gt; [as .ts] (/usr/lib/node_modules/ts-node/src/index.ts:861:12)
      at Module.load (internal/modules/cjs/loader.js:1100:32)
      at Function.Module._load (internal/modules/cjs/loader.js:962:14)
      at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
      at main (/usr/lib/node_modules/ts-node/src/bin.ts:227:14)
      at Object.&lt;anonymous&gt; (/usr/lib/node_modules/ts-node/src/bin.ts:513:3)
  root@MEDAIHILW237:/mnt/c/workgit/projeny# ts-node db/initializers/inituser.ts
  TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension &quot;.ts&quot; for /mnt/c/workgit/projeny/db/initializers/inituser.ts
      at Loader.defaultGetFormat [as _getFormat] (internal/modules/esm/get_format.js:65:15)
      at Loader.getFormat (internal/modules/esm/loader.js:101:42)
      at Loader.getModuleJob (internal/modules/esm/loader.js:230:31)
      at Loader.import (internal/modules/esm/loader.js:164:17)
      at Object.loadESM (internal/process/esm_loader.js:68:5)
  root@MEDAIHILW237:/mnt/c/workgit/projeny# ts-node db/initializers/inituser
  TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension &quot;.ts&quot; for /mnt/c/workgit/projeny/db/initializers/inituser.ts
      at Loader.defaultGetFormat [as _getFormat] (internal/modules/esm/get_format.js:65:15)
      at Loader.getFormat (internal/modules/esm/loader.js:101:42)
      at Loader.getModuleJob (internal/modules/esm/loader.js:230:31)
      at Loader.import (internal/modules/esm/loader.js:164:17)
      at Object.loadESM (internal/process/esm_loader.js:68:5)
  </code></pre>
  <p>I add &quot;type&quot;: &quot;module&quot; in package.json file.</p>
  <pre><code>{
    &quot;name&quot;: &quot;typescript-test&quot;,
    &quot;version&quot;: &quot;1.0.0&quot;,
    &quot;type&quot;: &quot;module&quot;,
  ...
  }
  </code></pre>
  <p>for overcome the error of</p>
  <pre><code>(node:3854) Warning: To load an ES module, set &quot;type&quot;: &quot;module&quot; in the package.json or use the .mjs extension.
  (Use `node --trace-warnings ...` to show where the warning was created)
  </code></pre>