> 以前端專案來說,當不同專案使用不同的 node 版本,除了用 nvm 切換以外也可以直接用容器模式來使用 Cursor / VSCode,可以做到更好的隔離。 ## 1. 安裝 Docker 如果 Win 環境啟用 WSL 出現錯誤,可嘗試 BIOS 模式開啟虛擬環境 [(Link)](https://www.asus.com/tw/support/faq/1045141/) ## 2. 在專案根目錄新增 `.devcontainer` 資料夾 範例 ``` my-node-20-project/ ├── .devcontainer/ │ ├── devcontainer.json │ └── Dockerfile ├── package.json ├── index.js ``` - devcontainer.json 範例 ``` { "name": "My Node App", "build": { "dockerfile": "Dockerfile" }, "settings": { "terminal.integrated.shell.linux": "/bin/bash" }, "extensions": [ "dbaeumer.vscode-eslint" ], "postCreateCommand": "npm install", // 服務啟動時的指令 "forwardPorts": [3000] // 要跟前端服務設定的 port 一樣 } ``` - Dockerfile ``` FROM node:20 WORKDIR /workspace COPY . . ``` ## 3. 啟用 Docker ## 4. 測試 開啟 Cursor → 選擇專案資料夾。它會偵測到 .devcontainer 並提示「是否以 Container 模式開啟」。點選「是」,它會建構容器並重啟該專案於容器內。之後你寫的程式、終端操作、安裝的套件都只存在該容器內。 可以下指令 `node -v` 確認版本。 --- ## 如何退出? 左下角 - close remote connection ![image](https://hackmd.io/_uploads/B1-CNZIgxl.png)