cli: switch to using tsx and module loader register API

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2023-10-21 15:46:56 +02:00
parent 1df3c04025
commit 4ba4ac351f
4 changed files with 52 additions and 40 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Switch from using deprecated `@esbuild-kit/*` packages to using `tsx`. This also switches to using the new module loader `register` API when available, avoiding the experimental warning when starting backends.
+1 -2
View File
@@ -40,8 +40,6 @@
"@backstage/integration": "workspace:^",
"@backstage/release-manifests": "workspace:^",
"@backstage/types": "workspace:^",
"@esbuild-kit/cjs-loader": "^2.4.1",
"@esbuild-kit/esm-loader": "^2.5.5",
"@manypkg/get-packages": "^1.1.3",
"@octokit/graphql": "^5.0.0",
"@octokit/graphql-schema": "^13.7.0",
@@ -131,6 +129,7 @@
"swc-loader": "^0.2.3",
"tar": "^6.1.12",
"terser-webpack-plugin": "^5.1.3",
"tsx": "^3.14.0",
"util": "^0.12.3",
"webpack": "^5.70.0",
"webpack-dev-server": "^4.7.3",
@@ -27,11 +27,14 @@ import { isAbsolute as isAbsolutePath } from 'path';
import { paths } from '../paths';
import spawn from 'cross-spawn';
const [nodeMajor, nodeMinor] = process.versions.node.split('.').map(Number);
const supportsModuleLoaderRegister = nodeMajor >= 20 && nodeMinor >= 6;
const loaderArgs = [
'--require',
require.resolve('@esbuild-kit/cjs-loader'),
'--loader',
pathToFileURL(require.resolve('@esbuild-kit/esm-loader')).toString(), // Windows prefers a URL here
require.resolve('tsx/preflight'),
supportsModuleLoaderRegister ? '--import' : '--loader',
pathToFileURL(require.resolve('tsx')).toString(), // Windows prefers a URL here
];
export async function startBackendExperimental(options: BackendServeOptions) {
+40 -35
View File
@@ -3726,8 +3726,6 @@ __metadata:
"@backstage/test-utils": "workspace:^"
"@backstage/theme": "workspace:^"
"@backstage/types": "workspace:^"
"@esbuild-kit/cjs-loader": ^2.4.1
"@esbuild-kit/esm-loader": ^2.5.5
"@manypkg/get-packages": ^1.1.3
"@octokit/graphql": ^5.0.0
"@octokit/graphql-schema": ^13.7.0
@@ -3837,6 +3835,7 @@ __metadata:
tar: ^6.1.12
terser-webpack-plugin: ^5.1.3
ts-node: ^10.0.0
tsx: ^3.14.0
type-fest: ^2.19.0
util: ^0.12.3
webpack: ^5.70.0
@@ -10641,36 +10640,6 @@ __metadata:
languageName: node
linkType: hard
"@esbuild-kit/cjs-loader@npm:^2.4.1":
version: 2.4.2
resolution: "@esbuild-kit/cjs-loader@npm:2.4.2"
dependencies:
"@esbuild-kit/core-utils": ^3.0.0
get-tsconfig: ^4.4.0
checksum: e346e339bfc7eff5c52c270fd0ec06a7f2341b624adfb69f84b7d83f119c35070420906f2761a0b4604e0a0ec90e35eaf12544585476c428ed6d6ee3b250c0fe
languageName: node
linkType: hard
"@esbuild-kit/core-utils@npm:^3.0.0, @esbuild-kit/core-utils@npm:^3.3.2":
version: 3.3.2
resolution: "@esbuild-kit/core-utils@npm:3.3.2"
dependencies:
esbuild: ~0.18.20
source-map-support: ^0.5.21
checksum: 62f3b97457fa4ef39d752bd2ad1c8adac08929b50c411f5259f105cc74896f1fdb3429a540aa423e8eae37f32ef44656ca21ccb9a723cd9955d65a820960ab1f
languageName: node
linkType: hard
"@esbuild-kit/esm-loader@npm:^2.5.5":
version: 2.6.5
resolution: "@esbuild-kit/esm-loader@npm:2.6.5"
dependencies:
"@esbuild-kit/core-utils": ^3.3.2
get-tsconfig: ^4.7.0
checksum: 88a27203898f14bd69f03244ae2b3bae727e00243d7801292c4da8caba69813b0978fb8245a55b83bc9b907f475ed634f094a1f44cc590c0754993f4a924cc22
languageName: node
linkType: hard
"@esbuild/android-arm64@npm:0.16.17":
version: 0.16.17
resolution: "@esbuild/android-arm64@npm:0.16.17"
@@ -26652,7 +26621,7 @@ __metadata:
languageName: node
linkType: hard
"fsevents@npm:2.3.2, fsevents@npm:^2.3.2, fsevents@npm:~2.3.2":
"fsevents@npm:2.3.2":
version: 2.3.2
resolution: "fsevents@npm:2.3.2"
dependencies:
@@ -26662,7 +26631,17 @@ __metadata:
languageName: node
linkType: hard
"fsevents@patch:fsevents@2.3.2#~builtin<compat/fsevents>, fsevents@patch:fsevents@^2.3.2#~builtin<compat/fsevents>, fsevents@patch:fsevents@~2.3.2#~builtin<compat/fsevents>":
"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3":
version: 2.3.3
resolution: "fsevents@npm:2.3.3"
dependencies:
node-gyp: latest
checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317
conditions: os=darwin
languageName: node
linkType: hard
"fsevents@patch:fsevents@2.3.2#~builtin<compat/fsevents>":
version: 2.3.2
resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin<compat/fsevents>::version=2.3.2&hash=18f3a7"
dependencies:
@@ -26671,6 +26650,15 @@ __metadata:
languageName: node
linkType: hard
"fsevents@patch:fsevents@^2.3.2#~builtin<compat/fsevents>, fsevents@patch:fsevents@~2.3.2#~builtin<compat/fsevents>, fsevents@patch:fsevents@~2.3.3#~builtin<compat/fsevents>":
version: 2.3.3
resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin<compat/fsevents>::version=2.3.3&hash=18f3a7"
dependencies:
node-gyp: latest
conditions: os=darwin
languageName: node
linkType: hard
"function-bind@npm:^1.1.1":
version: 1.1.1
resolution: "function-bind@npm:1.1.1"
@@ -26861,7 +26849,7 @@ __metadata:
languageName: node
linkType: hard
"get-tsconfig@npm:^4.4.0, get-tsconfig@npm:^4.7.0":
"get-tsconfig@npm:^4.7.2":
version: 4.7.2
resolution: "get-tsconfig@npm:4.7.2"
dependencies:
@@ -40881,6 +40869,23 @@ __metadata:
languageName: node
linkType: hard
"tsx@npm:^3.14.0":
version: 3.14.0
resolution: "tsx@npm:3.14.0"
dependencies:
esbuild: ~0.18.20
fsevents: ~2.3.3
get-tsconfig: ^4.7.2
source-map-support: ^0.5.21
dependenciesMeta:
fsevents:
optional: true
bin:
tsx: dist/cli.mjs
checksum: afcef5d9b90b5800cf1ffb749e943f63042d78a4c0d9eef6e13e43f4ecab465d45e2c9812a2c515cbdc2ee913ff1cd01bf5c606a48013dd3ce2214a631b45557
languageName: node
linkType: hard
"tty-browserify@npm:0.0.0":
version: 0.0.0
resolution: "tty-browserify@npm:0.0.0"