Project IDX memungkinkan Anda menyesuaikan ruang kerja dengan kebutuhan unik project Anda
dengan menentukan satu file konfigurasi .idx/dev.nix
yang menjelaskan:
- Alat sistem yang perlu Anda jalankan (misalnya, dari Terminal), seperti compiler atau biner lainnya.
- Ekstensi IDE yang perlu diinstal (misalnya, bahasa pemrograman dukungan teknis IT).
- Tampilan pratinjau aplikasi Anda (untuk misalnya, perintah untuk menjalankan server web Anda).
- Variabel lingkungan global tersedia untuk server lokal yang berjalan di Workspace.
Lihat referensi dev.nix
untuk mengetahui
deskripsi mengenai apa yang tersedia.
Nix dan IDX
IDX menggunakan Nix untuk menentukan konfigurasi lingkungan untuk setiap ruang kerja. Secara khusus, IDX menggunakan:
Bahasa pemrograman Nix untuk menjelaskan lingkungan ruang kerja. Nix adalah bahasa pemrograman fungsional. Atribut dan library paket yang dapat Anda tentukan dalam file
dev.nix
ikuti kumpulan atribut Nix sintaksis.Pengelola paket Nix untuk mengelola alat sistem yang tersedia untuk ruang kerja Anda. Hal ini mirip dengan fungsi spesifik per OS pengelola paket seperti APT (
apt
danapt-get
), Homebrew (brew
), dandpkg
.
Karena lingkungan Nix dapat direproduksi dan deklaratif, dalam konteks IDX, ini berarti Anda dapat membagikan file konfigurasi Nix sebagai bagian dari Repositori Git untuk memastikan semua orang yang mengerjakan project Anda memiliki konfigurasi lingkungan.
Contoh dasar
Contoh berikut menunjukkan konfigurasi lingkungan dasar yang mengaktifkan pratinjau:
{ pkgs, ... }: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [
pkgs.nodejs_18
];
# 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";
};
};
};
}
Menambahkan alat sistem
Untuk menambahkan {i>tool<i} sistem ke ruang kerja Anda, seperti kompilator atau program CLI untuk
layanan cloud, temukan ID paket yang unik di dalam paket Nix
registry dan menambahkannya ke file dev.nix
Objek packages
, yang diawali dengan `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_18
];
...
}
Ini berbeda dari cara Anda biasanya
menginstal paket sistem menggunakan
Pengelola paket khusus OS seperti APT (apt
dan apt-get
), Homebrew
(brew
), dan dpkg
. Secara deklaratif menggambarkan dengan
tepat paket sistem mana yang
berarti ruang kerja IDX lebih mudah dibagikan dan direproduksi.
Menggunakan biner node lokal
Sama seperti pada komputer lokal Anda, biner yang terkait dengan node yang diinstal secara lokal
paket (yaitu paket yang ditentukan dalam package.json
) dapat dieksekusi dalam
Panel terminal dengan memanggilnya menggunakan npx
perintah.
Untuk memudahkan, jika Anda berada dalam direktori dengan node_modules
(seperti direktori utama project web), biner yang diinstal secara lokal
dapat dipanggil secara langsung, tanpa awalan npx
.
Menambahkan komponen gcloud
Konfigurasi default gcloud
CLI untuk Google
Cloud tersedia untuk semua IDX
mengubah ruang kerja Anda.
Jika memerlukan komponen tambahan, Anda dapat menambahkannya ke file dev.nix
seperti
jadi:
{ pkgs }: {
packages = [
...
(pkgs.google-cloud-sdk.withExtraComponents [
pkgs.google-cloud-sdk.components.cloud-datastore-emulator
])
...
];
}
Menambahkan ekstensi IDE
Anda dapat menginstal ekstensi di IDX menggunakan Registry ekstensi OpenVSX dengan dua cara:
Dengan menggunakan panel Ekstensi di IDX untuk menemukan dan menginstal ekstensi. Pendekatan ini cocok untuk ekstensi khusus pengguna, seperti:
- Tema warna kustom
Dengan menambahkan ekstensi ke file
dev.nix
Anda. Ekstensi ini akan diinstal otomatis saat Anda membagikan konfigurasi ruang kerja Anda. Ini pendekatan terbaik untuk ekstensi khusus project, seperti:- Ekstensi bahasa pemrograman, termasuk debugger khusus bahasa
- Ekstensi resmi untuk layanan cloud yang digunakan dalam project Anda
- Pemformat kode
Untuk pendekatan yang terakhir, Anda dapat menyertakan ekstensi IDE dalam file dev.nix
.
dengan menemukan ID ekstensi yang sepenuhnya memenuhi syarat (dengan format <publisher>.<id>
) dan menambahkannya ke idx.extensions
seperti berikut ini:
{ pkgs, ... }: {
...
# Search for the extensions you want on https://open-vsx.org/ and use the format
# "<publisher>.<id>"
idx.extensions = [
"angular.ng-template"
];
...
}
Menambahkan layanan umum
IDX juga menawarkan penyiapan dan konfigurasi yang sederhana untuk layanan umum mungkin diperlukan selama pengembangan, termasuk:
- Penampung
- Docker (
services.docker.*
)
- Docker (
- Fitur pesan
- Emulator Pub/Sub (
services.pubsub.*
)
- Emulator Pub/Sub (
- {i>Database<i}
- MySQL (
services.mysql.*
) - Postgres (
services.postgres.*
) - Redis (
services.redis.*
) - Spanner (
services.spanner.*
)
- MySQL (
Untuk mengetahui detail tentang cara mengaktifkan layanan ini di ruang kerja Anda, lihat services.*
bagian dari referensi dev.nix
.
Sesuaikan pratinjau
Untuk detail tentang cara menyesuaikan pratinjau aplikasi, lihat dokumentasi untuk pratinjau.
Menetapkan ikon ruang kerja
Anda dapat memilih ikon khusus untuk ruang kerja Anda, dengan menempatkan {i>file<i} PNG bernama
icon.png
di samping file dev.nix
, di dalam direktori .idx
. IDX
kemudian akan menggunakan ikon ini untuk mewakili ruang kerja Anda di dasbor.
Karena file ini dapat dimasukkan ke kontrol sumber (seperti Git), ini adalah adalah cara yang baik untuk membantu semua orang yang mengerjakan proyek Anda melihat ikon yang sama untuk project saat menggunakan IDX. Dan karena file tersebut dapat bervariasi di berbagai cabang Git, Anda bahkan dapat membedakan ruang kerja secara visual saat mengerjakan "beta" dan "produksi" rilis aplikasi Anda, misalnya.
Ubah penyesuaian Anda menjadi template
Untuk mengubah konfigurasi lingkungan Anda menjadi "lingkungan awal" untuk siapa saja untuk membuat project baru, lihat dokumen untuk membuat template.
Lihat semua opsi penyesuaian
Lihat referensi dev.nix
untuk informasi selengkapnya
deskripsi skema konfigurasi lingkungan.