Sam Denty commited on
Commit
d0828e4
·
unverified ·
1 Parent(s): efcb93d

fix(chrome-129): show issue page (#157)

Browse files
Files changed (2) hide show
  1. package.json +1 -1
  2. vite.config.ts +28 -1
package.json CHANGED
@@ -71,9 +71,9 @@
71
  "rehype-raw": "^7.0.0",
72
  "rehype-sanitize": "^6.0.0",
73
  "remark-gfm": "^4.0.0",
 
74
  "remix-utils": "^7.6.0",
75
  "shiki": "^1.9.1",
76
- "remix-island": "^0.2.0",
77
  "unist-util-visit": "^5.0.0"
78
  },
79
  "devDependencies": {
 
71
  "rehype-raw": "^7.0.0",
72
  "rehype-sanitize": "^6.0.0",
73
  "remark-gfm": "^4.0.0",
74
+ "remix-island": "^0.2.0",
75
  "remix-utils": "^7.6.0",
76
  "shiki": "^1.9.1",
 
77
  "unist-util-visit": "^5.0.0"
78
  },
79
  "devDependencies": {
vite.config.ts CHANGED
@@ -1,6 +1,6 @@
1
  import { cloudflareDevProxyVitePlugin as remixCloudflareDevProxy, vitePlugin as remixVitePlugin } from '@remix-run/dev';
2
  import UnoCSS from 'unocss/vite';
3
- import { defineConfig } from 'vite';
4
  import { nodePolyfills } from 'vite-plugin-node-polyfills';
5
  import { optimizeCssModules } from 'vite-plugin-optimize-css-modules';
6
  import tsconfigPaths from 'vite-tsconfig-paths';
@@ -24,7 +24,34 @@ export default defineConfig((config) => {
24
  }),
25
  UnoCSS(),
26
  tsconfigPaths(),
 
27
  config.mode === 'production' && optimizeCssModules({ apply: 'build' }),
28
  ],
29
  };
30
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import { cloudflareDevProxyVitePlugin as remixCloudflareDevProxy, vitePlugin as remixVitePlugin } from '@remix-run/dev';
2
  import UnoCSS from 'unocss/vite';
3
+ import { defineConfig, type ViteDevServer } from 'vite';
4
  import { nodePolyfills } from 'vite-plugin-node-polyfills';
5
  import { optimizeCssModules } from 'vite-plugin-optimize-css-modules';
6
  import tsconfigPaths from 'vite-tsconfig-paths';
 
24
  }),
25
  UnoCSS(),
26
  tsconfigPaths(),
27
+ chrome129IssuePlugin(),
28
  config.mode === 'production' && optimizeCssModules({ apply: 'build' }),
29
  ],
30
  };
31
  });
32
+
33
+ function chrome129IssuePlugin() {
34
+ return {
35
+ name: 'chrome129IssuePlugin',
36
+ configureServer(server: ViteDevServer) {
37
+ server.middlewares.use((req, res, next) => {
38
+ const raw = req.headers['user-agent']?.match(/Chrom(e|ium)\/([0-9]+)\./);
39
+
40
+ if (raw) {
41
+ const version = parseInt(raw[2], 10);
42
+
43
+ if (version === 129) {
44
+ res.setHeader('content-type', 'text/html');
45
+ res.end(
46
+ '<body><h1>Please use Chrome Canary for testing.</h1><p>Chrome 129 has an issue with JavaScript modules & Vite local development, see <a href="https://github.com/stackblitz/bolt.new/issues/86#issuecomment-2395519258">for more information.</a></p><p><b>Note:</b> This only impacts <u>local development</u>. `pnpm run build` and `pnpm run start` will work fine in this browser.</p></body>',
47
+ );
48
+
49
+ return;
50
+ }
51
+ }
52
+
53
+ next();
54
+ });
55
+ },
56
+ };
57
+ }