From 81d6da7894533b020c6a2c4a5991eecce1824b18 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 8 Apr 2022 17:09:57 +0800 Subject: [PATCH] fix: resolve asbolute path to jiti for pnpm support (#58) * fix: resolve asbolute path to jiti for pnpm support * Delete stub.ts --- package.json | 4 ++-- src/builder/rollup.ts | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index ab6d177..51f22c5 100644 --- a/package.json +++ b/package.json @@ -16,9 +16,9 @@ "build": "pnpm unbuild", "dev": "pnpm unbuild test/fixture", "lint": "eslint --ext .ts,.js .", - "prepack": "pnpm build", + "prepack": "pnpm unbuild", "release": "pnpm test && standard-version && git push --follow-tags && npm publish", - "stub": "pnpm build --stub", + "stub": "pnpm unbuild -- --stub", "test": "mocha -r jiti/register ./test/*.test.*", "unbuild": "jiti ./src/cli" }, diff --git a/src/builder/rollup.ts b/src/builder/rollup.ts index a8e2678..1fb0584 100644 --- a/src/builder/rollup.ts +++ b/src/builder/rollup.ts @@ -10,6 +10,7 @@ import dts from 'rollup-plugin-dts' import replace from '@rollup/plugin-replace' import { relative, resolve, dirname } from 'pathe' import consola from 'consola' +import { resolvePath } from 'mlly' import { getpkg, tryResolve } from '../utils' import type { BuildContext } from '../types' import { JSONPlugin } from './plugins/json' @@ -22,6 +23,8 @@ const esbuild = _esbuild.default || _esbuild export async function rollupBuild (ctx: BuildContext) { if (ctx.options.stub) { + const jitiPath = await resolvePath('jiti', { url: import.meta.url }) + for (const entry of ctx.options.entries.filter(entry => entry.builder === 'rollup')) { const output = resolve(ctx.options.rootDir, ctx.options.outDir, entry.name!) @@ -31,9 +34,9 @@ export async function rollupBuild (ctx: BuildContext) { await mkdir(dirname(output), { recursive: true }) if (ctx.options.rollup.emitCJS) { - await writeFile(output + '.cjs', `${shebang}module.exports = require('jiti')(null, { interopDefault: true })('${entry.input}')`) + await writeFile(output + '.cjs', `${shebang}module.exports = require(${JSON.stringify(jitiPath)})(null, { interopDefault: true })('${entry.input}')`) } - await writeFile(output + '.mjs', `${shebang}import jiti from 'jiti';\nexport default jiti(null, { interopDefault: true })('${entry.input}');`) + await writeFile(output + '.mjs', `${shebang}import jiti from ${JSON.stringify(jitiPath)};\nexport default jiti(null, { interopDefault: true })('${entry.input}');`) await writeFile(output + '.d.ts', `export * from '${entry.input}';\nexport { default } from '${entry.input}';`) if (shebang) {