diff --git a/packages/nuxi/bin/nuxi.mjs b/packages/nuxi/bin/nuxi.mjs index 08683cf73..31d54504d 100755 --- a/packages/nuxi/bin/nuxi.mjs +++ b/packages/nuxi/bin/nuxi.mjs @@ -1,7 +1,21 @@ #!/usr/bin/env node +import nodeModule from 'node:module' +import process from 'node:process' import { fileURLToPath } from 'node:url' -import { runMain } from '../dist/index.mjs' + +// https://nodejs.org/api/module.html#moduleenablecompilecachecachedir +// https://github.com/nodejs/node/pull/54501 +if (nodeModule.enableCompileCache && !process.env.NODE_DISABLE_COMPILE_CACHE) { + try { + const { directory } = nodeModule.enableCompileCache() + // allow child process to share the same cache directory + process.env.NODE_COMPILE_CACHE ||= directory + } + catch { + // Ignore errors + } +} globalThis.__nuxt_cli__ = { startTime: Date.now(), @@ -9,4 +23,7 @@ globalThis.__nuxt_cli__ = { devEntry: fileURLToPath(new URL('../dist/dev/index.mjs', import.meta.url)), } +// eslint-disable-next-line antfu/no-top-level-await +const { runMain } = await import('../dist/index.mjs') + runMain() diff --git a/packages/nuxt-cli/bin/nuxi.mjs b/packages/nuxt-cli/bin/nuxi.mjs index 08683cf73..31d54504d 100755 --- a/packages/nuxt-cli/bin/nuxi.mjs +++ b/packages/nuxt-cli/bin/nuxi.mjs @@ -1,7 +1,21 @@ #!/usr/bin/env node +import nodeModule from 'node:module' +import process from 'node:process' import { fileURLToPath } from 'node:url' -import { runMain } from '../dist/index.mjs' + +// https://nodejs.org/api/module.html#moduleenablecompilecachecachedir +// https://github.com/nodejs/node/pull/54501 +if (nodeModule.enableCompileCache && !process.env.NODE_DISABLE_COMPILE_CACHE) { + try { + const { directory } = nodeModule.enableCompileCache() + // allow child process to share the same cache directory + process.env.NODE_COMPILE_CACHE ||= directory + } + catch { + // Ignore errors + } +} globalThis.__nuxt_cli__ = { startTime: Date.now(), @@ -9,4 +23,7 @@ globalThis.__nuxt_cli__ = { devEntry: fileURLToPath(new URL('../dist/dev/index.mjs', import.meta.url)), } +// eslint-disable-next-line antfu/no-top-level-await +const { runMain } = await import('../dist/index.mjs') + runMain()