swc-node icon indicating copy to clipboard operation
swc-node copied to clipboard

[WIP]: experimental esm loader

Open Brooooooklyn opened this issue 2 years ago • 4 comments

  • Close: https://github.com/Brooooooklyn/swc-node/issues/634
  • Close: https://github.com/Brooooooklyn/swc-node/issues/383
  • Close: https://github.com/Brooooooklyn/swc-node/issues/120

Brooooooklyn avatar Mar 15 '22 10:03 Brooooooklyn

We're eagerly waiting for top-level await support.

Can we do anything to help test this?

Multiply avatar May 23 '22 09:05 Multiply

Stuck on ESM support as well, looking forward to this PR merge!

DenisGorbachev avatar Jul 15 '22 12:07 DenisGorbachev

Is something blocking this change from being merged?

sam-goodwin avatar Aug 24 '22 07:08 sam-goodwin

also waiting for this!

osdiab avatar Sep 13 '22 02:09 osdiab

Any way how to progress this PR?

weyert avatar Nov 28 '22 17:11 weyert

esm/esm.js is not included in v1.6.0, so @swc-node/register/esm does not work

> cat node_modules/@swc-node/register/package.json | rg version
  "version": "1.6.0",

> ls node_modules/@swc-node/register
LICENSE  README.md  index.js  lib  node_modules  package.json  read-default-tsconfig.d.ts  register.d.ts

Also, seems node -r @swc-node/register/esm is using require(), it failed to recognize /esm

Error: Package subpath './esm' is not defined by "exports" in node_modules/@swc-node/register/package.json

foray1010 avatar Feb 10 '23 21:02 foray1010

Can someone shed some light on how to use this now that it's fixed?

test.ts

import got from 'got';

const { data } = await got
  .post('https://httpbin.org/anything', {
    json: {
      hello: 'world',
    },
  })
  .json<{data: unknown}>();

console.log(data);
node -r @swc/register test.ts
node:internal/errors:490
    ErrorCaptureStackTrace(err);
    ^

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /foo/test.ts

jensbodal avatar Mar 29 '23 12:03 jensbodal

@jensbodal you should use loader for esm. read the docs

node --loader @swc-node/register/esm test.ts

erfanium avatar Mar 29 '23 13:03 erfanium

Thank you that worked

And my bad I see it in the docs here: https://github.com/swc-project/swc-node#usage

jensbodal avatar Mar 29 '23 14:03 jensbodal

Can we use both -r and --loader at the same time? Or does that not make sense?

weyert avatar Mar 29 '23 15:03 weyert

@weyert yes you can use. but i can't tell you something makes sense or not without seeing the actual code.

erfanium avatar Mar 29 '23 19:03 erfanium