type:: post status:: doing star:: 5 relation:: [[@Winny/Topic/Node js 與 npm 版本衝突問題討論]] [draft.gist↗](https://gist.github.com/wanyutang/940f36706068e511888a4c14b4be2db9) [sample.gist](https://gist.github.com/wanyutang/ba0b21f3090a068595e7695856a9d91b) [hackmd↗](https://hackmd.io/@VxulnppPQHuOEDANOU92EQ/ByJRfjo0R) history:: [[2024-10-03]]start # Project IDX 線上IDE開發程式 - This article is the original draft, will published at [[TPIU 昕力大學]][↗](https://www.tpisoftware.com/tpu/). ## 前言 - 本文將介紹Google IDX(Integrated Development Experience),一個基於 Visual Studio Code 的雲端開發環境,旨在提供多使用者協作和跨平台開發的便利。 ## 簡介 - Google IDX(Integrated Development Experience)基於 Visual Studio Code (VSCode) 的架構和設計,目的是提供一個雲端的開發環境。這使得使用者可以享受到 VSCode 的許多功能,如語法高亮、代碼自動完成以及即時預覽,同時還能利用雲端計算的優勢,進行多使用者協作和跨平台開發。因此,Google IDX 繼承了 VSCode 的許多特性,但也針對特定的雲端開發需求進行了調整和優化。 ## 登入 Google IDX - 前往 Google IDX 登入頁面 https://idx.google.com  - 使用已註冊的 Google 帳戶電子郵件登入註冊  - 登入成功後,進入 Google IDX 的主頁面, 點選 [Get Started]  ## 匯入 GitHub 專案程式 - 點選右下角 [Import a repo] 匯入git repository  - 輸入 git 位置:https://github.com/wanyutang/demo-admin-nuxt3  - 開發環境建置中.....  - IDX 將會要求取得 Git Hub Repository 授權  - 點選 [Allow] 同意後介面會出現等下會用到的一次性 code, 點選 [Copy & Continue to GitHub] 按鈕進入 GitHub 認證畫面  - 登入 GitHub 網站後點選 [continue] 進入下一步  - 之前在 IDX 取得的 code 在這裡輸入, 使用 Ctrl + P 貼上  - 線上 IDX 取得 GitHub 認證畫面, 點選 [Authorize Visual-Studio-Code] 進行認證  - 完成認證設定後回到 [[Project IDX]] 線上ID  - Google IDX 基於 VSCode 的架構和設計,所以操作介面與 vscode 差不多  ## 預覽 UI 介面 - [[Project IDX]] 會自動檢測專案內容, 常見的程式架構在啟用 IDX 時會自動 build and deploy  - 需要一些時間進行 install and run,右方會出現預覽可以方便開發檢視程式修改結果 - View 視窗也有提供功能另開視窗檢視測試頁面  - 點選 [Open] 後可以在新的 tag 測試 UI 畫面  ## 設定 Docker 開發環境 - [[Project IDX]] 雖然能自動偵側大部份的專案架構以提供適合的開發環境, 但仍有不足之處, 遇到太舊的版本可能就無法支援, 此時可以在線上 IDX 使用 docker image 來進行佈版測試  - dev.nix 有異動時, 右下角會出現 [Rebuild Environment] 按鈕,確認設定完成後點選該功能以使用新的環境設定進行 Rebuild 開發環境 - 啟用 docker 環境需要修改 dev.nix ```yml # .......... 略 ........ packages = [ # pkgs.go # pkgs.python311 # pkgs.nodejs_20 pkgs.docker ]; # .......... 略 ........ services.docker.enable = true; ``` - packages 增加 pkgs.docker - docker enable 設成 true ## 安裝 vscode Docker 套件 - 左方套件安裝介面找到 docker 並點選安裝 {:width 300, :height 210} - 安裝完成左方選單會出現 Docker 套件的工具列  ## Docker Complse run Nodejs 專案 - 在專案根目錄建置 [docker-compose.yml](https://gist.github.com/wanyutang/ba0b21f3090a068595e7695856a9d91b#file-x-docker-compose-yml) ```yml version: '3' services: app: image: node:18 container_name: node-app working_dir: /usr/src/app volumes: - .:/usr/src/app ports: - "3000:3000" command: sh - c "yarn install && yarn dev" restart: unless-stopped environment: - NODE_ENV=development ``` - 這裡設定開發 port 3000 給 IDX 預覽佈版使用 - 右鍵選擇 [Compose Up] 啟用 Docker  - CONTAINERS 工具視窗可以觀察 containers 的建置狀態, 右鍵可以進行基本的操作指令  ## Project IDX Ports 預覽 - 左方找到 Project IDX 工具視窗, 在最下方 [BACKEND PORTS] 可以找到 vm 3000 port 對應的 URLs  - 點選 [Open] 以新視窗開啟預覽頁面   - ## Gemini in IDX - 透過 Project IDX 的 Gemini API以簡化開發流程,開發者可以將這些 AI 功能嵌入到應用程式中,進一步提升開發效率 - Project IDX 介面右下角點選 [Gemini] 前往啟用 AI 設定後點選 [Continue] 就可以愉快的跟 AI 聊天了   ## 總結 - **雲端開發環境**:Google IDX 提供雲端開發平台,讓開發者能夠隨時隨地進行開發工作。 - **協作功能**:IDX 支持團隊協作,允許多位開發者同時工作,提升專案的協同效率。 - **跨平台支持**:該平台支持多種作業系統和裝置,讓開發者能夠在不同環境下進行開發。 - **提升生產力**:Google IDX 的直觀介面和強大功能能夠幫助開發者更快地完成任務,提升整體工作效率。 - **未來趨勢**:隨著雲端技術的進步,IDX 預示著未來開發環境的趨勢,將成為開發者重要的工具。 ## 參考來源 - [Docker 實戰指南](https://5xcampus.com/courses/docker.html?srsltid=AfmBOooo835EEd_759r9U4ut1zWW0U44-ofpKctUPn_Tt9ufU0sjFvQs) - [Docker Documentation](https://docs.docker.com/) - [npx: A Tool for Running npm Package Binaries](https://www.npmjs.com/package/npx) - [Node.js Wiki](https://zh.wikipedia.org/zh-tw/Node.js) ## 延申閱讀 - [使用 Docker Compose 摻在一起做懶人包](https://ithelp.ithome.com.tw/articles/10243618) - [[實作筆記] 如何更無痛更新專案中的 npm 相依套件](https://blog.marsen.me/2022/09/08/2022/how_to_npm_update_more_smoothly/) - [nodejs 專案之間自動切換版本的好用工具 – volta](https://www.pigo.idv.tw/archives/3410) - [nvm:安裝、切換不同 Node.js 版本的管理器](https://titangene.github.io/article/nvm.html) ## 外部連結 - [Volta Official Website](https://volta.sh/) - [nvm GitHub Repository](https://github.com/nvm-sh/nvm) - [[Project IDX]][↗](https://idx.dev/)[1] - [[@Winny/Topic/Node js 與 npm 版本衝突問題討論]][↗](https://gist.github.com/wanyutang/f189b01142464ed421c593421cddf690) - [[Winny Post]][↗](https://hackmd.io/@VxulnppPQHuOEDANOU92EQ/SymfrcyRA/%2FkHOaExJWQuufXTXSu4-slg) ## 註腳 [1] [[Project IDX]][↗](https://idx.dev/) : Project IDX is an AI-assisted workspace for full-stack, multiplatform app development in the cloud. With support for a broad range of frameworks, languages, ...
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up