This repository provides a development container configuration for working on the Stylescape
project. The configuration is optimized for Node.js, TypeScript, SCSS, and Jinja2 templating, providing a comprehensive development environment using Visual Studio Code's Dev Containers.
The development container is configured with the following settings:
{
"name": "Stylescape DevContainer",
"build": {
"dockerfile": "Dockerfile",
"context": "."
},
"image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:0-18",
"features": {
"ghcr.io/devcontainers/features/node:1": {
"version": "18"
}
},
"customizations": {
"vscode": {
"extensions": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"ms-python.python",
"ms-vscode.vscode-typescript-next",
"stylelint.vscode-stylelint",
"streetsidesoftware.code-spell-checker",
"redhat.vscode-yaml",
"PKief.material-icon-theme",
"syler.sass-indented",
"vscode-icons-team.vscode-icons",
"jinja.html-formatter",
"ritwickdey.LiveServer",
"gruntfuggly.todo-tree",
"svelte.svelte-vscode",
"octref.vetur"
],
"settings": {
"editor.formatOnSave": true,
"terminal.integrated.shell.linux": "/bin/bash",
"files.associations": {
"*.jinja": "jinja"
}
}
}
},
"forwardPorts": [
3000
],
"postCreateCommand": "npm install && pip3 install -r requirements.txt",
"remoteUser": "vscode",
"workspaceFolder": "/workspace",
"mounts": [
"source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached"
],
"remoteEnv": {
"NODE_ENV": "development"
},
"containerEnv": {
"NODE_ENV": "development"
}
}
-
Base Image:
- Node.js Dev Container: The development environment is based on the official Node.js Dev Container image
mcr.microsoft.com/vscode/devcontainers/javascript-node:0-18
, which includes Node.js 18, ensuring consistency across development environments.
- Node.js Dev Container: The development environment is based on the official Node.js Dev Container image
-
VS Code Extensions: The container is pre-configured with a comprehensive set of Visual Studio Code extensions to enhance your development experience:
- JavaScript/TypeScript:
dbaeumer.vscode-eslint
: Linting for JavaScript and TypeScript.esbenp.prettier-vscode
: Code formatting with Prettier.ms-vscode.vscode-typescript-next
: Enhanced TypeScript support.
- CSS/SCSS:
stylelint.vscode-stylelint
: Linting for CSS and SCSS files.syler.sass-indented
: Syntax highlighting for SCSS/SASS.
- Templating & Markup:
jinja.html-formatter
: Formatting for Jinja2 templates.redhat.vscode-yaml
: YAML support for configuration files.ritwickdey.LiveServer
: Live reloading for HTML files.
- Utility & Productivity:
streetsidesoftware.code-spell-checker
: Spell checking for text files.gruntfuggly.todo-tree
: Managing TODO comments effectively.PKief.material-icon-theme
andvscode-icons-team.vscode-icons
: Custom icons for a better file explorer experience.
- Framework-Specific:
svelte.svelte-vscode
: Support for Svelte development.octref.vetur
: Support for Vue.js development.
- JavaScript/TypeScript:
-
Post-Creation Commands:
- Automatically installs Node.js and Python dependencies using
npm install
andpip3 install -r requirements.txt
after the container is created, ensuring your development environment is ready to go.
- Automatically installs Node.js and Python dependencies using
-
Environment Variables:
- The
NODE_ENV
is set todevelopment
for both the remote and container environments, ensuring your application runs in development mode.
- The
-
VS Code Custom Settings:
- Formatting: Automatically formats your code on save, maintaining code consistency.
- File Associations: Associates
.jinja
files with Jinja2 syntax highlighting.
-
Setup:
- Ensure Docker and Visual Studio Code are installed on your machine. Also, install the VS Code Dev Containers extension if not already installed.
-
Add the DevContainer Configuration:
- Place the
devcontainer.json
file inside a.devcontainer
directory at the root of your project.
- Place the
-
Open in Container:
- Open your project in Visual Studio Code. When prompted to "Reopen in Container", select this option to launch the development container.
-
Working in the Container:
- Once the container is up, you can work in a fully-featured development environment with all necessary tools and dependencies configured.
- Consistency: Develop in a consistent environment that mirrors your production setup.
- Pre-configured Tools: Start coding immediately with all essential tools and extensions pre-configured.
- Portability: Easily share your development environment setup with team members.
Feel free to customize the devcontainer.json
file to better suit your needs. You can add or remove extensions, modify environment variables, or adjust settings as required.
- If you encounter issues with the container setup, ensure Docker is running and that your system meets the requirements for using Dev Containers.
- Check the logs in the VS Code terminal for any errors during the container build or startup process.
This DevContainer setup for Stylescape
provides a robust and efficient development environment, streamlining your workflow and ensuring consistency across different development setups. Enjoy coding in a fully integrated and customized environment!