From da2d399addb5c7c09c3bfa46f7ab040c25d60b4a Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Thu, 1 Jul 2021 15:40:02 +0800 Subject: [PATCH] fix: use `.mjs` extension for injected client modules Otherwise, they will not be recognized by Node.js as ES modules. Usually it doesn't matter, as they're intended to run in browsers. I only encountered this problem in `vite-jest`, which tries to run vite-transpiled code in Node.js environments. After this PR, the following hack would no longer be necessary: https://github.com/sodatea/vite-jest/blob/1e05b4c62df714b1537c76052d5fec761a46c619/packages/vite-jest/bin/vite-jest.js#L11-L12 --- packages/vite/rollup.config.js | 4 ++-- packages/vite/src/node/constants.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/vite/rollup.config.js b/packages/vite/rollup.config.js index db55f4e518a12f..34ea08f1692732 100644 --- a/packages/vite/rollup.config.js +++ b/packages/vite/rollup.config.js @@ -26,7 +26,7 @@ const envConfig = { }) ], output: { - dir: path.resolve(__dirname, 'dist/client'), + file: path.resolve(__dirname, 'dist/client', 'env.mjs'), sourcemap: true } } @@ -48,7 +48,7 @@ const clientConfig = { }) ], output: { - dir: path.resolve(__dirname, 'dist/client'), + file: path.resolve(__dirname, 'dist/client', 'client.mjs'), sourcemap: true } } diff --git a/packages/vite/src/node/constants.ts b/packages/vite/src/node/constants.ts index 4352869419d897..8910344936f3ce 100644 --- a/packages/vite/src/node/constants.ts +++ b/packages/vite/src/node/constants.ts @@ -41,9 +41,9 @@ export const NULL_BYTE_PLACEHOLDER = `__x00__` export const CLIENT_PUBLIC_PATH = `/@vite/client` export const ENV_PUBLIC_PATH = `/@vite/env` // eslint-disable-next-line node/no-missing-require -export const CLIENT_ENTRY = require.resolve('vite/dist/client/client.js') +export const CLIENT_ENTRY = require.resolve('vite/dist/client/client.mjs') // eslint-disable-next-line node/no-missing-require -export const ENV_ENTRY = require.resolve('vite/dist/client/env.js') +export const ENV_ENTRY = require.resolve('vite/dist/client/env.mjs') export const CLIENT_DIR = path.dirname(CLIENT_ENTRY) export const KNOWN_ASSET_TYPES = [