From 40cbd488a521408bdbec0964bbb9693566f1cce1 Mon Sep 17 00:00:00 2001 From: dutexion Date: Tue, 6 Aug 2024 15:46:10 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B0=B0=ED=8F=AC=20=EC=8B=9C=EB=8F=84=20vite?= =?UTF-8?q?=20config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vite.config.ts | 42 ++++++++++++------------------------------ 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index 4c9af4a..f2dd5ea 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -2,14 +2,16 @@ import reactRefresh from '@vitejs/plugin-react-refresh'; import react from '@vitejs/plugin-react'; import path from 'path'; import { defineConfig } from 'vite'; -import fs from 'fs'; -function ignoreUseClientPlugin() { +function removeUseClientPlugin() { return { - name: 'ignore-use-client', + name: 'remove-use-client', transform(code, id) { - if (id.includes('node_modules/@tanstack/react-query-devtools')) { - return code.replace(/'use client';?/g, ''); + if (id.includes('@tanstack/react-query') || id.includes('@tanstack/react-query-devtools')) { + return { + code: code.replace(/^['"]use client['"];?\s*$/m, ''), + map: null, + }; } }, }; @@ -17,31 +19,11 @@ function ignoreUseClientPlugin() { // https://vitejs.dev/config/ export default defineConfig({ - esbuild: { - supported: { - 'top-level-await': true, - }, - }, optimizeDeps: { - esbuildOptions: { - define: { - global: 'globalThis', - }, - plugins: [ - { - name: 'ignore-use-client-directive', - setup(build) { - build.onLoad({ filter: /.*/ }, async (args) => { - if (args.path.includes('node_modules/@tanstack/react-query-devtools')) { - return { - contents: (await fs.promises.readFile(args.path, 'utf8')).replace(/'use client';?/g, ''), - }; - } - }); - }, - }, - ], - }, + include: ['@tanstack/react-query', '@tanstack/react-query-devtools'], + }, + esbuild: { + logOverride: { 'this-is-undefined-in-esm': 'silent' }, }, server: { port: 3002, @@ -54,5 +36,5 @@ export default defineConfig({ build: { outDir: 'build', }, - plugins: [react(), reactRefresh(), ignoreUseClientPlugin()], + plugins: [react(), reactRefresh(), removeUseClientPlugin()], });