element-web/.devcontainer/devcontainer.json
2026-03-25 13:58:24 +00:00

59 lines
2.1 KiB
JSON

{
"name": "element-web designer prototyping",
"image": "mcr.microsoft.com/devcontainers/javascript-node:24-bookworm",
"hostRequirements": {
"cpus": 4,
"memory": "8gb",
"storage": "32gb"
},
"postCreateCommand": "pnpm install --frozen-lockfile && pnpm --filter @element-hq/web-shared-components run build && git checkout -b design/${GITHUB_USER}/$(date +%Y%m%d) 2>/dev/null || true",
"postAttachCommand": {
"install-vsix": "node .devcontainer/storybook-launcher/build-vsix.mjs && code --install-extension $(ls .devcontainer/storybook-launcher/*.vsix | head -1) --force 2>/dev/null",
"element-web": "cp -n apps/web/config.sample.json apps/web/config.json && cd apps/web && pnpm start",
"storybook": "pnpm run storybook:design"
},
"forwardPorts": [6007, 8080],
"portsAttributes": {
"6007": {
"label": "Shared Components Storybook",
"onAutoForward": "openPreview",
"requireLocalPort": false
},
"8080": {
"label": "Element Web",
"onAutoForward": "notify",
"requireLocalPort": false
}
},
"customizations": {
"codespaces": {
"openFiles": []
},
"vscode": {
"settings": {
"chat.mcp.autoStart": false,
"workbench.startupEditor": "welcomePageInEmptyWorkbench",
"workbench.tips.enabled": false,
"workbench.welcome.enabled": false,
"github.copilot.chat.openAtStartup": true
},
"extensions": [
"GitHub.copilot",
"GitHub.copilot-chat"
],
"mcp": {
"servers": {
"element-web-figma": {
"command": "node",
"args": [
"scripts/design/figma-mcp-server.mjs"
],
"env": {
"FIGMA_TOKEN": "${env:FIGMA_TOKEN}"
}
}
}
}
}
}
}