Skip to content

Commit 16f965d

Browse files
fix: use shared webcontainer mode
1 parent f1a915d commit 16f965d

File tree

12 files changed

+238
-241
lines changed

12 files changed

+238
-241
lines changed

next.config.js

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,7 @@ const nextConfig = {
7373
],
7474
};
7575
},
76-
env: {
77-
NEXT_PUBLIC_BASE_URL:
78-
process.env.NEXT_PUBLIC_BASE_URL ||
79-
(process.env.VERCEL_ENV === 'production'
80-
? 'https://react.dev'
81-
: process.env.VERCEL_URL
82-
? `https://${process.env.VERCEL_URL}`
83-
: 'http://localhost:3000'),
84-
},
76+
env: {},
8577
webpack: (config, {dev, isServer, ...options}) => {
8678
if (process.env.ANALYZE) {
8779
const {BundleAnalyzerPlugin} = require('webpack-bundle-analyzer');

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"@docsearch/react": "^3.8.3",
3131
"@headlessui/react": "^1.7.0",
3232
"@radix-ui/react-context-menu": "^2.1.5",
33-
"@webcontainer/react": "^0.0.2",
33+
"@webcontainer/react": "^0.0.3",
3434
"body-scroll-lock": "^3.1.3",
3535
"classnames": "^2.2.6",
3636
"debounce": "^1.2.1",
Lines changed: 44 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import {defineTemplate} from '@webcontainer/react';
2-
import {hideFiles} from './utils';
32
import viteReactPackageJson from './vite-react/package-json.json';
43
import viteReactPackageLockJson from './vite-react/package-lock-json.json';
54
import viteRscPackageJson from './vite-rsc/package-json.json';
@@ -14,42 +13,58 @@ const startCommand: [string, ...string[]] = [
1413

1514
export const viteReactTemplate = defineTemplate({
1615
id: 'vite-react',
17-
files: hideFiles({
18-
'/vite.config.js':
19-
require('!raw-loader?esModule=false!./vite-react/vite.config.js') as string,
20-
'/index.html':
21-
require('!raw-loader?esModule=false!./vite-react/index.html') as string,
22-
'/src/index.jsx':
23-
require('!raw-loader?esModule=false!./vite-react/src/index.jsx') as string,
24-
}),
16+
serverMode: 'shared',
17+
sharedFiles: {
18+
'/vite.config.js': {
19+
code: require('!raw-loader?esModule=false!./vite-react/vite.config.js') as string,
20+
},
21+
},
22+
appFiles: {
23+
'/index.html': {
24+
code: require('!raw-loader?esModule=false!./vite-react/index.html') as string,
25+
},
26+
'/src/index.jsx': {
27+
code: require('!raw-loader?esModule=false!./vite-react/src/index.jsx') as string,
28+
},
29+
},
2530
environment: {
26-
packageJson: JSON.stringify(viteReactPackageJson),
27-
packageLockJson: JSON.stringify(viteReactPackageLockJson),
31+
packageJson: JSON.stringify(viteReactPackageJson, null, 2),
32+
packageLockJson: JSON.stringify(viteReactPackageLockJson, null, 2),
2833
startCommand,
2934
},
3035
});
3136

3237
export const viteRscTemplate = defineTemplate({
3338
id: 'vite-rsc',
34-
files: hideFiles({
35-
'/src/framework/entry.browser.jsx':
36-
require('!raw-loader?esModule=false!./vite-rsc/src/framework/entry.browser.jsx') as string,
37-
'/src/framework/entry.rsc.jsx':
38-
require('!raw-loader?esModule=false!./vite-rsc/src/framework/entry.rsc.jsx') as string,
39-
'/src/framework/entry.ssr.jsx':
40-
require('!raw-loader?esModule=false!./vite-rsc/src/framework/entry.ssr.jsx') as string,
41-
'/src/framework/error-boundary.jsx':
42-
require('!raw-loader?esModule=false!./vite-rsc/src/framework/error-boundary.jsx') as string,
43-
'/src/framework/request.jsx':
44-
require('!raw-loader?esModule=false!./vite-rsc/src/framework/request.jsx') as string,
45-
'/src/root.jsx':
46-
require('!raw-loader?esModule=false!./vite-rsc/src/root.jsx') as string,
47-
'/vite.config.js':
48-
require('!raw-loader?esModule=false!./vite-rsc/vite.config.js') as string,
49-
}),
39+
serverMode: 'shared',
40+
sharedFiles: {
41+
'/vite.config.js': {
42+
code: require('!raw-loader?esModule=false!./vite-rsc/vite.config.js') as string,
43+
},
44+
'/src/framework/entry.browser.jsx': {
45+
code: require('!raw-loader?esModule=false!./vite-rsc/src/framework/entry.browser.jsx') as string,
46+
},
47+
'/src/framework/entry.rsc.jsx': {
48+
code: require('!raw-loader?esModule=false!./vite-rsc/src/framework/entry.rsc.jsx') as string,
49+
},
50+
'/src/framework/entry.ssr.jsx': {
51+
code: require('!raw-loader?esModule=false!./vite-rsc/src/framework/entry.ssr.jsx') as string,
52+
},
53+
'/src/framework/error-boundary.jsx': {
54+
code: require('!raw-loader?esModule=false!./vite-rsc/src/framework/error-boundary.jsx') as string,
55+
},
56+
'/src/framework/request.jsx': {
57+
code: require('!raw-loader?esModule=false!./vite-rsc/src/framework/request.jsx') as string,
58+
},
59+
},
60+
appFiles: {
61+
'/src/root.jsx': {
62+
code: require('!raw-loader?esModule=false!./vite-rsc/src/root.jsx') as string,
63+
},
64+
},
5065
environment: {
51-
packageJson: JSON.stringify(viteRscPackageJson),
52-
packageLockJson: JSON.stringify(viteRscPackageLockJson),
66+
packageJson: JSON.stringify(viteRscPackageJson, null, 2),
67+
packageLockJson: JSON.stringify(viteRscPackageLockJson, null, 2),
5368
startCommand,
5469
},
5570
});

src/components/MDX/Sandpack/templates/utils.ts

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/components/MDX/Sandpack/templates/vite-react/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
</head>
88
<body>
99
<div id="root"></div>
10-
<script type="module" src="/src/index.jsx"></script>
10+
<script type="module" src="./src/index.jsx"></script>
1111
</body>
1212
</html>

src/components/MDX/Sandpack/templates/vite-react/package-json.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@
77
},
88
"dependencies": {
99
"html-format": "^1.1.7",
10+
"immer": "^11.1.4",
1011
"react": "^19.2.4",
1112
"react-dom": "^19.2.4",
1213
"react-error-boundary": "^4.1.1",
13-
"rsc-html-stream": "^0.0.7"
14+
"rsc-html-stream": "^0.0.7",
15+
"use-immer": "^0.11.0"
1416
},
1517
"devDependencies": {
1618
"@vitejs/plugin-react": "^5.1.4",

0 commit comments

Comments
 (0)