Skip to content

Commit 23e511c

Browse files
authored
feat: add esm-register for node>20.6 (#748)
1 parent df125c8 commit 23e511c

File tree

7 files changed

+59
-34
lines changed

7 files changed

+59
-34
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,9 @@ dist
162162
#/target
163163
Cargo.lock
164164

165+
# idea
166+
.idea/
167+
165168
*.node
166169
lib
167170
artifacts

README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ Run TypeScript with node, without compilation or typechecking:
1717
```bash
1818
npm i -D @swc-node/register
1919
node -r @swc-node/register script.ts
20-
node --loader @swc-node/register/esm script.ts # for esm project
20+
node --import @swc-node/register/esm-register script.ts # for esm project with node>=20.6
21+
node --loader @swc-node/register/esm script.ts # for esm project with node<=20.5, deprecated
2122
```
2223

2324
Set environment variable SWCRC=true when you would like to load .swcrc file
@@ -26,6 +27,14 @@ Set environment variable SWCRC=true when you would like to load .swcrc file
2627
SWCRC=true node -r @swc-node/register script.ts
2728
```
2829

30+
```typescript
31+
#!/usr/bin/env node --import swc-register-esm
32+
33+
// your code
34+
```
35+
36+
run with shebang, add `TS_NODE_PROJECT=null`(`#!/usr/bin/env TS_NODE_PROJECT=null node --import swc-register-esm`) to use ignore tsconfig.json
37+
2938
## @swc-node/core
3039
3140
Fastest `TypeScript` transformer.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"@types/babel__core": "^7.20.1",
4747
"@types/benchmark": "^2.1.2",
4848
"@types/lodash": "^4.14.197",
49-
"@types/node": "^20.5.0",
49+
"@types/node": "^20.11.0",
5050
"@types/sinon": "^10.0.16",
5151
"@typescript-eslint/eslint-plugin": "^6.4.0",
5252
"@typescript-eslint/parser": "^6.4.0",

packages/register/esm-register.mts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { register } from 'node:module'
2+
import { pathToFileURL } from 'node:url'
3+
4+
register('@swc-node/register/esm', pathToFileURL('./').toString())

packages/register/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@
7575
},
7676
"./esm": {
7777
"import": "./esm/esm.mjs"
78+
},
79+
"./esm-register": {
80+
"import": "./esm/esm-register.mjs"
7881
}
7982
}
8083
}

packages/register/tsconfig.esm.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
"outDir": "esm"
66
},
77
"include": [],
8-
"files": ["./esm.mts", "register.d.ts", "./read-default-tsconfig.d.ts"]
8+
"files": ["./esm.mts", "./esm-register.mts", "register.d.ts", "./read-default-tsconfig.d.ts"]
99
}

pnpm-lock.yaml

Lines changed: 37 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)