diff --git a/lib/jiti-cli.mjs b/lib/jiti-cli.mjs index b9c89d4a..3bb3b9e9 100755 --- a/lib/jiti-cli.mjs +++ b/lib/jiti-cli.mjs @@ -1,7 +1,7 @@ #!/usr/bin/env node import { resolve } from "node:path"; -import { createJiti } from "./jiti.cjs"; +import nodeModule from "node:module"; const script = process.argv.splice(2, 1)[0]; @@ -10,8 +10,25 @@ if (!script) { process.exit(1); } +// https://nodejs.org/api/module.html#moduleenablecompilecachecachedir +// https://github.com/nodejs/node/pull/54501 +if (nodeModule.enableCompileCache && !process.env.NODE_DISABLE_COMPILE_CACHE) { + try { + nodeModule.enableCompileCache(); + } catch { + // Ignore errors + } +} + const pwd = process.cwd(); + +const { createJiti } = await import("./jiti.cjs"); + const jiti = createJiti(pwd); + const resolved = (process.argv[1] = jiti.resolve(resolve(pwd, script))); -jiti.import(resolved).catch(console.error); +await jiti.import(resolved).catch((error) => { + console.error(error); + process.exit(1); +}); diff --git a/test/__snapshots__/fixtures.test.ts.snap b/test/__snapshots__/fixtures.test.ts.snap index f9ccafd9..cacd2844 100644 --- a/test/__snapshots__/fixtures.test.ts.snap +++ b/test/__snapshots__/fixtures.test.ts.snap @@ -37,7 +37,8 @@ exports[`fixtures > esm > stdout 1`] = ` 'at getStack (/test)', 'at test (/test)', 'at async /index.js', - 'at async Function.import (/dist/jiti.cjs)' + 'at async Function.import (/dist/jiti.cjs)', + 'at async file:///lib/jiti-cli.mjs' ] }" `;