Firebase Studio ช่วยให้คุณปรับแต่งพื้นที่ทำงานให้ตรงกับความต้องการเฉพาะของโปรเจ็กต์ได้โดยการกำหนดไฟล์การกำหนดค่า .idx/dev.nix
ไฟล์เดียวที่อธิบายสิ่งต่อไปนี้
- เครื่องมือระบบที่คุณต้องใช้เพื่อเรียกใช้ (เช่น จากเทอร์มินัล) เช่น คอมไพเลอร์หรือไบนารีอื่นๆ
- ส่วนขยายที่คุณต้องติดตั้ง (เช่น การรองรับภาษาโปรแกรม )
- ลักษณะที่ตัวอย่างแอปควรปรากฏ (เช่น คำสั่งในการเรียกใช้เว็บเซิร์ฟเวอร์)
- ตัวแปรสภาพแวดล้อมส่วนกลางที่พร้อมใช้งานสำหรับเซิร์ฟเวอร์ในเครื่องที่ทำงานใน พื้นที่ทํางาน
ดูคำอธิบายทั้งหมดของฟีเจอร์ที่พร้อมใช้งานได้ในdev.nix
ข้อมูลอ้างอิง
Nix และ Firebase Studio
Firebase Studio ใช้ Nix เพื่อกำหนด การกำหนดค่าสภาพแวดล้อมสำหรับแต่ละพื้นที่ทำงาน กล่าวโดยละเอียดคือ Firebase Studio ใช้
ภาษาโปรแกรม Nix เพื่ออธิบายสภาพแวดล้อมของพื้นที่ทำงาน Nix เป็นภาษาการเขียนโปรแกรมเชิงฟังก์ชัน แอตทริบิวต์และไลบรารีแพ็กเกจที่คุณกำหนดในไฟล์
dev.nix
จะเป็นไปตามไวยากรณ์ชุดแอตทริบิวต์ NixNix Package Manager เพื่อจัดการเครื่องมือของระบบที่พร้อมใช้งานในพื้นที่ทำงาน ซึ่งคล้ายกับ เครื่องมือจัดการแพ็กเกจเฉพาะระบบปฏิบัติการ เช่น APT (
apt
และapt-get
), Homebrew (brew
) และdpkg
เนื่องจากสภาพแวดล้อมของ Nix สามารถทำซ้ำและประกาศได้ ในบริบทของ Firebase Studio ซึ่งหมายความว่าคุณสามารถแชร์ไฟล์การกำหนดค่า Nix เป็นส่วนหนึ่งของที่เก็บ Git เพื่อให้มั่นใจว่าทุกคนที่ทำงานในโปรเจ็กต์ มีการกำหนดค่าสภาพแวดล้อมเดียวกัน
ตัวอย่างพื้นฐาน
ตัวอย่างต่อไปนี้แสดงการกำหนดค่าสภาพแวดล้อมพื้นฐานที่เปิดใช้ตัวอย่าง
{ pkgs, ... }: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [
pkgs.nodejs_20
];
# Sets environment variables in the workspace
env = {
SOME_ENV_VAR = "hello";
};
# Search for the extensions you want on https://open-vsx.org/ and use "publisher.id"
idx.extensions = [
"angular.ng-template"
];
# Enable previews and customize configuration
idx.previews = {
enable = true;
previews = {
web = {
command = [
"npm"
"run"
"start"
"--"
"--port"
"$PORT"
"--host"
"0.0.0.0"
"--disable-host-check"
];
manager = "web";
# Optionally, specify a directory that contains your web app
# cwd = "app/client";
};
};
};
}
เพิ่มเครื่องมือของระบบ
หากต้องการเพิ่มเครื่องมือของระบบลงในพื้นที่ทำงาน เช่น คอมไพเลอร์หรือโปรแกรม CLI สำหรับ
บริการระบบคลาวด์ ให้ค้นหารหัสแพ็กเกจที่ไม่ซ้ำกันในรีจิสทรีแพ็กเกจ Nix แล้วเพิ่มลงในออบเจ็กต์ packages
ของไฟล์
dev.nix
โดยมีคำนำหน้าเป็น `pkgs.:
{ pkgs, ... }: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [
pkgs.nodejs_20
];
...
}
ซึ่งแตกต่างจากวิธีที่คุณอาจติดตั้งแพ็กเกจระบบโดยทั่วไปโดยใช้ตัวจัดการแพ็กเกจเฉพาะระบบปฏิบัติการ เช่น APT (apt
และ apt-get
), Homebrew (brew
) และ dpkg
การอธิบายอย่างชัดเจนว่าต้องใช้แพ็กเกจระบบใดบ้างหมายความว่าFirebase Studio Workspace จะแชร์และทำซ้ำได้ง่ายขึ้น
ใช้ไบนารีของโหนดในเครื่อง
เช่นเดียวกับในเครื่องของคุณ ไบนารีที่เกี่ยวข้องกับแพ็กเกจ Node ที่ติดตั้งในเครื่อง (เช่น แพ็กเกจที่กำหนดไว้ใน package.json
) สามารถเรียกใช้ในแผงเทอร์มินัลได้โดยการเรียกใช้ด้วยnpx
คำสั่ง
เพื่อความสะดวกยิ่งขึ้น หากคุณอยู่ในไดเรกทอรีที่มีโฟลเดอร์ node_modules
(เช่น ไดเรกทอรีรูทของโปรเจ็กต์เว็บ) คุณจะเรียกใช้ไบนารีที่ติดตั้งในเครื่องได้โดยตรงโดยไม่ต้องมีคำนำหน้า npx
เพิ่มคอมโพเนนต์ gcloud
การกำหนดค่าเริ่มต้นของ
gcloud
CLI สำหรับ Google Cloud
พร้อมใช้งานใน Workspace Firebase Studio ทั้งหมด
หากต้องการคอมโพเนนต์เพิ่มเติม คุณสามารถเพิ่มลงในไฟล์ dev.nix
ได้โดยทำดังนี้
{ pkgs }: {
packages = [
...
(pkgs.google-cloud-sdk.withExtraComponents [
pkgs.google-cloud-sdk.components.cloud-datastore-emulator
])
...
];
}
เพิ่มส่วนขยาย IDE
คุณติดตั้งส่วนขยายใน Firebase Studio โดยใช้รีจิสทรีส่วนขยาย OpenVSX ได้ 2 วิธี ดังนี้
ใช้แผงส่วนขยายใน Firebase Studio เพื่อค้นหา และติดตั้งส่วนขยาย แนวทางนี้เหมาะที่สุดสำหรับส่วนขยายที่เฉพาะเจาะจงสำหรับผู้ใช้ เช่น
- ธีมสีแบบกำหนดเอง
- การจำลองโปรแกรมแก้ไข เช่น VSCodeVim
เพิ่มส่วนขยายลงในไฟล์
dev.nix
ระบบจะติดตั้งส่วนขยายเหล่านี้โดยอัตโนมัติเมื่อคุณแชร์การกำหนดค่าพื้นที่ทำงาน แนวทางนี้เหมาะที่สุดสำหรับส่วนขยายเฉพาะโปรเจ็กต์ เช่น- ส่วนขยายภาษาการเขียนโปรแกรม รวมถึงดีบักเกอร์เฉพาะภาษา
- ส่วนขยายอย่างเป็นทางการสำหรับบริการระบบคลาวด์ที่ใช้ในโปรเจ็กต์
- ตัวจัดรูปแบบโค้ด
สำหรับแนวทางที่ 2 คุณสามารถรวมส่วนขยาย IDE ไว้ในไฟล์ dev.nix
ได้โดยค้นหารหัสส่วนขยายที่สมบูรณ์ (ในรูปแบบ
<publisher>.<id>
) แล้วเพิ่มลงในออบเจ็กต์ idx.extensions
ดังนี้
{ pkgs, ... }: {
...
# Search for the extensions you want on https://open-vsx.org/ and use the format
# "<publisher>.<id>"
idx.extensions = [
"angular.ng-template"
];
...
}
เพิ่มบริการทั่วไป
Firebase Studio ยังมีการตั้งค่าและการกำหนดค่าที่ง่ายขึ้นสำหรับ บริการทั่วไปที่คุณอาจต้องใช้ในระหว่างการพัฒนา ซึ่งรวมถึง
- คอนเทนเนอร์
- Docker (
services.docker.*
)
- Docker (
- การรับส่งข้อความ
- โปรแกรมจำลอง Pub/Sub (
services.pubsub.*
)
- โปรแกรมจำลอง Pub/Sub (
- ฐานข้อมูล
- MySQL (
services.mysql.*
) - Postgres (
services.postgres.*
) - Redis (
services.redis.*
) - Spanner (
services.spanner.*
)
- MySQL (
ดูรายละเอียดเกี่ยวกับการเปิดใช้บริการเหล่านี้ในพื้นที่ทํางานได้ที่ส่วน services.*
ของข้อมูลอ้างอิง dev.nix
ปรับแต่งตัวอย่าง
ดูรายละเอียดเกี่ยวกับวิธีปรับแต่งตัวอย่างแอปได้ที่แสดงตัวอย่างแอป
ตั้งค่าไอคอนพื้นที่ทำงาน
คุณเลือกไอคอนที่กำหนดเองสำหรับพื้นที่ทำงานได้โดยวางไฟล์ PNG ที่ชื่อ
icon.png
ไว้ในไดเรกทอรี .idx
ที่ระดับเดียวกับไฟล์ dev.nix
Firebase Studio จะใช้ไอคอนนี้เพื่อแสดงพื้นที่ทำงานในแดชบอร์ด
เนื่องจากตรวจสอบไฟล์นี้ได้ในการควบคุมแหล่งที่มา (เช่น Git) จึงเป็นวิธีที่ดีในการช่วยให้ทุกคนที่ทำงานในโปรเจ็กต์เห็นไอคอนเดียวกันสำหรับโปรเจ็กต์เมื่อใช้ Firebase Studio และเนื่องจากไฟล์อาจแตกต่างกันในสาขา Git คุณจึงใช้ไอคอนนี้เพื่อแยกความแตกต่างระหว่างพื้นที่ทํางานของแอปเวอร์ชันเบต้ากับเวอร์ชันที่ใช้งานจริง และเพื่อวัตถุประสงค์อื่นๆ ได้
เปลี่ยนการปรับแต่งให้เป็นเทมเพลต
หากต้องการเปลี่ยนการกำหนดค่าสภาพแวดล้อมให้เป็น "สภาพแวดล้อมเริ่มต้น" ที่ทุกคน ใช้สร้างโปรเจ็กต์ใหม่ได้ โปรดดูเอกสารสำหรับสร้างเทมเพลตที่กำหนดเอง
ดูตัวเลือกการปรับแต่งทั้งหมด
ดูdev.nix
ข้อมูลอ้างอิงเพื่อดูคำอธิบายโดยละเอียดของสคีมาการกำหนดค่าสภาพแวดล้อม
ดาวน์โหลดไฟล์
วิธีดาวน์โหลดไฟล์เป็นไฟล์ ZIP
- คลิกขวาที่ไดเรกทอรีใดก็ได้ในแผง Explorer แล้วเลือกบีบอัดและดาวน์โหลด
วิธีดาวน์โหลดทุกอย่างในไดเรกทอรีโปรเจ็กต์
เลือกไฟล์ > เปิดโฟลเดอร์
ยอมรับไดเรกทอรี
/home/user
เริ่มต้นหลังจากโหลดไฟล์แล้ว ให้คลิกขวาที่ไดเรกทอรีการทำงาน แล้วเลือกZip และดาวน์โหลด หากใช้App Prototyping agent ไดเรกทอรีที่ใช้งานอยู่จะเป็น
studio
หาก ใช้เทมเพลตหรือโปรเจ็กต์ที่อัปโหลด นี่จะเป็นชื่อโปรเจ็กต์ของคุณเมื่อได้รับข้อความแจ้งให้สร้างสภาพแวดล้อมใหม่ ให้คลิกยกเลิก
หลังจากดาวน์โหลดเสร็จแล้ว ให้เปิดไดเรกทอรีการทำงานอีกครั้งจากเมนูไฟล์เพื่อกลับไปยังพื้นที่ทำงาน
ขั้นตอนถัดไป
- ผสานรวมกับ Firebase และบริการของ Google
- สร้างเทมเพลตที่กำหนดเอง
- เพิ่มปุ่มเปิดใน Firebase Studio
- ดูข้อมูลเพิ่มเติมเกี่ยวกับ Firebase Studioพื้นที่ทำงาน