From 5dcfea7d21a677ac3587b5d618b02859b487c243 Mon Sep 17 00:00:00 2001 From: Yoshi Togami <62130798+togami2864@users.noreply.github.com> Date: Fri, 6 May 2022 19:25:46 +0900 Subject: [PATCH] feat: remove shebang when executing the code via vite-node (#1224) * fix: remove shebang when runnning the code * fix: add padding to avoid index changes * chore: update Co-authored-by: Anthony Fu --- packages/vite-node/src/client.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/vite-node/src/client.ts b/packages/vite-node/src/client.ts index 1cd8823bbe42..bef4d25182fd 100644 --- a/packages/vite-node/src/client.ts +++ b/packages/vite-node/src/client.ts @@ -129,7 +129,8 @@ export class ViteNodeRunner { if (id in requestStubs) return requestStubs[id] - const { code: transformed, externalize } = await this.options.fetchModule(id) + // eslint-disable-next-line prefer-const + let { code: transformed, externalize } = await this.options.fetchModule(id) if (externalize) { const mod = await this.interopedImport(externalize) this.moduleCache.set(fsPath, { exports: mod }) @@ -177,6 +178,9 @@ export class ViteNodeRunner { __dirname: dirname(__filename), }) + if (transformed[0] === '#') + transformed = transformed.replace(/^\#\!.*/, s => ' '.repeat(s.length)) + // add 'use strict' since ESM enables it by default const fn = vm.runInThisContext(`'use strict';async (${Object.keys(context).join(',')})=>{{${transformed}\n}}`, { filename: fsPath,