From 0e2c402911ca7fc1e0122a5224424dd992cac9b5 Mon Sep 17 00:00:00 2001 From: togami2864 Date: Fri, 6 May 2022 15:25:42 +0900 Subject: [PATCH 1/3] fix: remove shebang when runnning the code --- packages/vite-node/src/client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite-node/src/client.ts b/packages/vite-node/src/client.ts index 1cd8823bbe42..77c422cd0ee9 100644 --- a/packages/vite-node/src/client.ts +++ b/packages/vite-node/src/client.ts @@ -178,7 +178,7 @@ export class ViteNodeRunner { }) // add 'use strict' since ESM enables it by default - const fn = vm.runInThisContext(`'use strict';async (${Object.keys(context).join(',')})=>{{${transformed}\n}}`, { + const fn = vm.runInThisContext(`'use strict';async (${Object.keys(context).join(',')})=>{{${transformed.replace(/^\#\!.*/, '')}\n}}`, { filename: fsPath, lineOffset: 0, }) From 0f2f69eca8a8f67c273fbda2322ae9340ee4d187 Mon Sep 17 00:00:00 2001 From: togami2864 Date: Fri, 6 May 2022 18:10:59 +0900 Subject: [PATCH 2/3] fix: add padding to avoid index changes --- packages/vite-node/src/client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite-node/src/client.ts b/packages/vite-node/src/client.ts index 77c422cd0ee9..35a557c0f075 100644 --- a/packages/vite-node/src/client.ts +++ b/packages/vite-node/src/client.ts @@ -178,7 +178,7 @@ export class ViteNodeRunner { }) // add 'use strict' since ESM enables it by default - const fn = vm.runInThisContext(`'use strict';async (${Object.keys(context).join(',')})=>{{${transformed.replace(/^\#\!.*/, '')}\n}}`, { + const fn = vm.runInThisContext(`'use strict';async (${Object.keys(context).join(',')})=>{{${transformed.replace(/^\#\!.*/, s => ' '.repeat(s.length))}\n}}`, { filename: fsPath, lineOffset: 0, }) From 57bb94b2e6bf684d13f19f7f21613cdef0a7984a Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 6 May 2022 18:18:54 +0800 Subject: [PATCH 3/3] chore: update --- packages/vite-node/src/client.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/vite-node/src/client.ts b/packages/vite-node/src/client.ts index 35a557c0f075..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,8 +178,11 @@ 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.replace(/^\#\!.*/, s => ' '.repeat(s.length))}\n}}`, { + const fn = vm.runInThisContext(`'use strict';async (${Object.keys(context).join(',')})=>{{${transformed}\n}}`, { filename: fsPath, lineOffset: 0, })