diff --git a/packages/@ionic/cli/package.json b/packages/@ionic/cli/package.json index 935a21687e..f44f4a700b 100644 --- a/packages/@ionic/cli/package.json +++ b/packages/@ionic/cli/package.json @@ -57,7 +57,7 @@ "leek": "0.0.24", "lodash": "^4.17.5", "open": "^7.0.4", - "os-name": "^4.0.0", + "os-name": "^5.1.0", "semver": "^7.1.1", "split2": "^3.0.0", "ssh-config": "^1.1.1", diff --git a/packages/@ionic/cli/src/lib/index.ts b/packages/@ionic/cli/src/lib/index.ts index 1effce3290..f9989dafdb 100644 --- a/packages/@ionic/cli/src/lib/index.ts +++ b/packages/@ionic/cli/src/lib/index.ts @@ -49,7 +49,10 @@ export async function generateIonicEnvironment(ctx: IonicContext, pargv: string[ const proxyVars = PROXY_ENVIRONMENT_VARIABLES.map((e): [string, string | undefined] => [e, process.env[e]]).filter(([, v]) => !!v); const getInfo = async () => { - const osName = await import('os-name'); + // use `eval()` to avoid `tsc` convert `import()` to `require()` + // because `os-name` package only support ESM since v5 release + // TODO: remove `eval()` once we upgrade to typescript 4.7+ and set `module: "node16"` in `tsconfig.base.json` + const { default: osName } = await eval("import('os-name')"); const semver = await import('semver'); const { getUpdateConfig } = await import('./updates');