Skip to content

feat: add esm-register for node>20.6#748

Merged
Brooooooklyn merged 1 commit into
swc-project:masterfrom
yeliex:feat/esm-register
Jan 20, 2024
Merged

feat: add esm-register for node>20.6#748
Brooooooklyn merged 1 commit into
swc-project:masterfrom
yeliex:feat/esm-register

Conversation

@yeliex

@yeliex yeliex commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

According to the node.js release notes for node 20.6 the experimental loaders API was deprecated in favour of the register API.
Because of that, we need to use node --import register.js file.ts instead of node --loader @swc-node/register/esm file.ts.

close #743

@yeliex yeliex force-pushed the feat/esm-register branch from 313b553 to 1a84d86 Compare January 12, 2024 03:02
@Brooooooklyn Brooooooklyn merged commit 23e511c into swc-project:master Jan 20, 2024
@yeliex yeliex deleted the feat/esm-register branch January 20, 2024 07:37
@zckrs

zckrs commented Jan 23, 2024

Copy link
Copy Markdown

Someone can release this fix in new version please ? 🙏

tsang-bot Bot referenced this pull request in tsangste/nx-package-test Feb 6, 2024
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@swc-node/register](https://togithub.com/swc-project/swc-node) |
[`1.6.8` ->
`1.8.0`](https://renovatebot.com/diffs/npm/@swc-node%2fregister/1.6.8/1.8.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@swc-node%2fregister/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc-node%2fregister/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc-node%2fregister/1.6.8/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc-node%2fregister/1.6.8/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@swc/cli](https://togithub.com/swc-project/pkgs)
([source](https://togithub.com/node ./bin)) | [`0.3.5` ->
`0.3.6`](https://renovatebot.com/diffs/npm/@swc%2fcli/0.3.5/0.3.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcli/0.3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcli/0.3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcli/0.3.5/0.3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcli/0.3.5/0.3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>swc-project/swc-node (@&#8203;swc-node/register)</summary>

###
[`v1.8.0`](https://togithub.com/swc-project/swc-node/releases/tag/%40swc-node/register%401.8.0)

[Compare
Source](https://togithub.com/swc-project/swc-node/compare/@swc-node/[email protected]...@swc-node/[email protected])

#### What's Changed

- fix(core): remove `jsc.module.noInterop` when it's not supported by
[@&#8203;kdy1](https://togithub.com/kdy1) in
[https://github.com/swc-project/swc-node/pull/733](https://togithub.com/swc-project/swc-node/pull/733)
- chore: fix README for install, build, and test by
[@&#8203;devjiwonchoi](https://togithub.com/devjiwonchoi) in
[https://github.com/swc-project/swc-node/pull/728](https://togithub.com/swc-project/swc-node/pull/728)
- feat(register): @&#8203;swc-node/register/esm use TypeScript resolver
by [@&#8203;cm-ayf](https://togithub.com/cm-ayf) in
[https://github.com/swc-project/swc-node/pull/727](https://togithub.com/swc-project/swc-node/pull/727)
- chore(deps-dev): bump
[@&#8203;babel/traverse](https://togithub.com/babel/traverse) from
7.22.10 to 7.23.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/swc-project/swc-node/pull/735](https://togithub.com/swc-project/swc-node/pull/735)
- Fix
[#&#8203;716](https://togithub.com/swc-project/swc-node/issues/716) by
[@&#8203;eliellis](https://togithub.com/eliellis) in
[https://github.com/swc-project/swc-node/pull/725](https://togithub.com/swc-project/swc-node/pull/725)
- chore(deps-dev): bump axios from 1.3.5 to 1.6.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/swc-project/swc-node/pull/738](https://togithub.com/swc-project/swc-node/pull/738)
- fix(core): respect useDefineForClassFields tsconfig value by
[@&#8203;dsyddall](https://togithub.com/dsyddall) in
[https://github.com/swc-project/swc-node/pull/740](https://togithub.com/swc-project/swc-node/pull/740)
- fix(core): respect sourceMaps swcrc value by
[@&#8203;dsyddall](https://togithub.com/dsyddall) in
[https://github.com/swc-project/swc-node/pull/742](https://togithub.com/swc-project/swc-node/pull/742)
- feat: add esm-register for node>20.6 by
[@&#8203;yeliex](https://togithub.com/yeliex) in
[https://github.com/swc-project/swc-node/pull/748](https://togithub.com/swc-project/swc-node/pull/748)
- chore(deps-dev): bump follow-redirects from 1.15.2 to 1.15.4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/swc-project/swc-node/pull/747](https://togithub.com/swc-project/swc-node/pull/747)
- feat(core): support swc's `ignoreDynamic` option by
[@&#8203;SukkaW](https://togithub.com/SukkaW) in
[https://github.com/swc-project/swc-node/pull/745](https://togithub.com/swc-project/swc-node/pull/745)
- fix: fix import ts from node_modules by
[@&#8203;yeliex](https://togithub.com/yeliex) in
[https://github.com/swc-project/swc-node/pull/744](https://togithub.com/swc-project/swc-node/pull/744)
- Mention --enable-source-maps in README.md for esm projects. by
[@&#8203;Xinkai](https://togithub.com/Xinkai) in
[https://github.com/swc-project/swc-node/pull/737](https://togithub.com/swc-project/swc-node/pull/737)
- feat: upgrade dependencies by
[@&#8203;Brooooooklyn](https://togithub.com/Brooooooklyn) in
[https://github.com/swc-project/swc-node/pull/751](https://togithub.com/swc-project/swc-node/pull/751)

#### New Contributors

- [@&#8203;devjiwonchoi](https://togithub.com/devjiwonchoi) made their
first contribution in
[https://github.com/swc-project/swc-node/pull/728](https://togithub.com/swc-project/swc-node/pull/728)
- [@&#8203;cm-ayf](https://togithub.com/cm-ayf) made their first
contribution in
[https://github.com/swc-project/swc-node/pull/727](https://togithub.com/swc-project/swc-node/pull/727)
- [@&#8203;eliellis](https://togithub.com/eliellis) made their first
contribution in
[https://github.com/swc-project/swc-node/pull/725](https://togithub.com/swc-project/swc-node/pull/725)
- [@&#8203;dsyddall](https://togithub.com/dsyddall) made their first
contribution in
[https://github.com/swc-project/swc-node/pull/740](https://togithub.com/swc-project/swc-node/pull/740)
- [@&#8203;SukkaW](https://togithub.com/SukkaW) made their first
contribution in
[https://github.com/swc-project/swc-node/pull/745](https://togithub.com/swc-project/swc-node/pull/745)
- [@&#8203;Xinkai](https://togithub.com/Xinkai) made their first
contribution in
[https://github.com/swc-project/swc-node/pull/737](https://togithub.com/swc-project/swc-node/pull/737)

**Full Changelog**:
https://github.com/swc-project/swc-node/compare/[@&#8203;swc-node/core](https://togithub.com/swc-node/core)[@&#8203;1](https://togithub.com/1).10.5...[@&#8203;swc-node/register](https://togithub.com/swc-node/register)[@&#8203;1](https://togithub.com/1).8.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3Mi4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Co-authored-by: tsang-bot[bot] <146107447+tsang-bot[bot]@users.noreply.github.com>
@ChALkeR

ChALkeR commented Jul 7, 2024

Copy link
Copy Markdown
import { register } from 'node:module';
register('@swc-node/register/esm', import.meta.url)

Seems to work better when called from a different cwd (e.g. from cwd of another package)

Assuming you want to resolve to the adjacent esm/esm.js from package exports

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Node.js v20.6+ no longer supports the loader API in favour of the register API

4 participants