feat: initialize landing application with Vite and Mantine configuration
This commit is contained in:
@@ -1,39 +1,64 @@
|
||||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
||||
// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node
|
||||
// For format details, see https://aka.ms/devcontainer.json
|
||||
// This container standardizes the local development environment for the Monorepo.
|
||||
{
|
||||
"name": "Node.js & TypeScript",
|
||||
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
|
||||
"name": "FE Monorepo Template",
|
||||
|
||||
// Base image providing Node.js v24, TypeScript, and a Debian Bookworm environment.
|
||||
"image": "mcr.microsoft.com/devcontainers/typescript-node:24-bookworm",
|
||||
// Features to add to the dev container. More info: https://containers.dev/features.
|
||||
|
||||
// DevContainer Features: Pre-installed tools needed for our workflow.
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/git:1": {},
|
||||
"ghcr.io/devcontainers-extra/features/pnpm:2": {},
|
||||
"ghcr.io/devcontainers/features/sshd:1": {}
|
||||
},
|
||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||
"forwardPorts": [6006, 5173, 5174, 5175],
|
||||
|
||||
// ─── Port Topology ──────────────────────────────────────────────────────────
|
||||
// 6006: Storybook (Docs)
|
||||
// 5173: Web App (Must be strictly 5173 for Electron IPC compatibility)
|
||||
// 3000: Landing App (Isolated from Vite's default 517x blast radius)
|
||||
"forwardPorts": [6006, 5173, 3000],
|
||||
|
||||
"portsAttributes": {
|
||||
"6006": {
|
||||
"label": "Storybook",
|
||||
"onAutoForward": "notify"
|
||||
},
|
||||
"5173": {
|
||||
"label": "Vites Application 1",
|
||||
"label": "Web App (Electron Target)",
|
||||
"onAutoForward": "notify"
|
||||
},
|
||||
"5174": {
|
||||
"label": "Vites Application 2",
|
||||
"onAutoForward": "notify"
|
||||
},
|
||||
"5175": {
|
||||
"label": "Vites Application 3",
|
||||
"3000": {
|
||||
"label": "Landing App (Public)",
|
||||
"onAutoForward": "notify"
|
||||
}
|
||||
}
|
||||
// Use 'postCreateCommand' to run commands after the container is created.
|
||||
// "postCreateCommand": "yarn install",
|
||||
// Configure tool-specific properties.
|
||||
// "customizations": {},
|
||||
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
|
||||
// "remoteUser": "root"
|
||||
},
|
||||
|
||||
// ─── Lifecycle Hooks ────────────────────────────────────────────────────────
|
||||
// Automatically install all workspace dependencies once the container is built.
|
||||
"postCreateCommand": "pnpm install",
|
||||
|
||||
// ─── Editor Standardization ─────────────────────────────────────────────────
|
||||
// Enforces code style and tooling across all developers' machines.
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"settings": {
|
||||
"editor.formatOnSave": true,
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"extensions": [
|
||||
"dbaeumer.vscode-eslint", // Linting
|
||||
"esbenp.prettier-vscode", // Formatting
|
||||
"bradlc.vscode-tailwindcss", // Tailwind v4 IntelliSense
|
||||
"yoavbls.pretty-ts-errors", // Human-readable TypeScript errors
|
||||
"editorconfig.editorconfig" // Standardized indentation
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
// ─── Security & Permissions ─────────────────────────────────────────────────
|
||||
// CRITICAL: Run the container as 'node' instead of 'root'.
|
||||
// This prevents 'Permission Denied' errors on the host OS when trying to
|
||||
// delete or modify the 'node_modules' folder created inside the container.
|
||||
"remoteUser": "node"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user