CommandBox, Pengurus Pakej dan Pelayan CFML
Kenali CommandBox, CLI CFML daripada Ortus Solutions. Belajar memasangnya, arahan asas install, uninstall dan package list, serta menjalankan pelayan Lucee.

Kandungan
- CommandBox, Pengurus Pakej dan Pelayan CFML
- Apa yang Termasuk dalam CommandBox
- Memasang CommandBox
- Arahan Asas: version, help, upgrade dan repl
- Pengurusan Pakej dengan install dan uninstall
- package list dan package show
- Menjalankan Pelayan Lucee dengan server start
- Mengurus Pelayan: server list dan restart
- Fail box.json
- Fail server.json
- CommandBox dalam Aliran Kerja Harian
- Perbandingan dengan Pemasangan Tomcat Tradisional
- Soalan Lazim (FAQ)
- Sumber
CommandBox, Pengurus Pakej dan Pelayan CFML
CommandBox ialah alat baris arahan (CLI) daripada Ortus Solutions yang menggabungkan pengurus pakej, pelayan CFML terbenam dan REPL dalam satu binari yang berjalan pada Windows, macOS dan Linux. Ia ialah cara paling pantas untuk memasang pakej CFML seperti TestBox atau ColdBox, dan untuk memulakan pelayan Lucee terus dari folder projek anda dengan satu arahan. Artikel ini menerangkan apa itu CommandBox, cara memasangnya, arahan asas, dan bagaimana ia berbeza daripada pemasangan Tomcat tradisional.
Apa yang Termasuk dalam CommandBox
Apabila anda memuat turun CommandBox, pakej itu sebenarnya mengandungi beberapa alat sekaligus. Dokumentasi rasmi menyenaraikannya dengan jelas: CLI, pengurus pakej, pelayan CFML terbenam, REPL, bantuan terbina dalam, dan seni ASCII yang menjadi jenama alat ini. CommandBox ditulis dalam CFML menggunakan konsep arahan CommandBox sendiri, jadi ia boleh disambungkan dengan mana-mana produk Ortus yang berasaskan Box, dan anda boleh menulis arahan sendiri lalu berkongsinya di ForgeBox.
Dua keupayaan yang paling berguna ialah pengurus pakej dan pelayan terbenam. Pengurus pakej membolehkan anda mencari dan memasang perpustakaan CFML dengan cara yang konsisten dan boleh diskrip, manakala pelayan terbenam membolehkan anda memulakan pelayan CFML di mana-mana folder tanpa memasang enjin servlet terlebih dahulu. Ini perbezaan besar berbanding cara lama memasang Lucee yang diterangkan dalam panduan cara memasang Lucee.
Memasang CommandBox
CommandBox ialah binari Java, jadi ia memerlukan Java pada mesin anda, kecuali anda memilih muat turun yang sudah membawa JRE sendiri. Terdapat dua jenis muat turun: versi Tanpa JRE untuk mesin yang sudah ada Java, dan versi Dengan JRE untuk penyelesaian satu muat turun.
Pada macOS, cara paling mudah ialah melalui Homebrew:
brew install commandbox
Pada Linux Debian atau Ubuntu, anda menambah repositori Ortus dan memasangnya dengan apt:
curl -fsSl https://downloads.ortussolutions.com/debs/gpg | sudo apt-key add -
echo "deb http://downloads.ortussolutions.com/debs/noarch /" | sudo tee -a /etc/apt/sources.list.d/commandbox.list
sudo apt-get update && sudo apt-get install commandbox
Pada Windows, anda hanya perlu mengekstrak fail box.exe daripada arkib ZIP dan menjalankannya. Apabila anda menjalankan binari box buat kali pertama, CommandBox akan mengekstrak dirinya ke dalam folder .CommandBox dalam direktori rumah pengguna anda, dan proses ini tidak berulang pada larian seterusnya. Untuk melihat versi, taip:
box version
Arahan Asas: version, help, upgrade dan repl
Sebaik sahaja anda berada di dalam shell interaktif CommandBox, beberapa arahan asas membantu anda membiasakan diri. Arahan help menunjukkan bantuan mengikut konteks, dan anda boleh menaipnya selepas nama arahan untuk mendapatkan bantuan khusus:
CommandBox> version help
CommandBox> upgrade
Arahan upgrade menyemak dan memasang versi CommandBox terkini. Untuk mencuba kod CFML terus dari baris arahan, arahan repl menjatuhkan anda ke dalam prompt REPL di mana anda boleh menaip kod CFML dan melihat hasilnya serta-merta:
CommandBox> repl
CFSCRIPT-REPL: _
Dalam REPL anda boleh mencipta tatasusunan, menjalankan gelung, dan memanggil fungsi CFML tanpa perlu menulis fail. Ini berguna untuk menguji sintaks dengan cepat.
Pengurusan Pakej dengan install dan uninstall
CommandBox berfungsi sebagai pengurus pakej, bermakna anda boleh mencari dan memasang pakej kod CFML dengan cara yang konsisten. Secara lalai, senarai pakej yang tersedia berada di ForgeBox, tapak perkongsian kod CFML. Apabila anda memasang sesuatu pakej, semua kebergantungannya dipasang secara automatik.
Untuk memasang pakej, gunakan arahan install diikuti slug pakej:
CommandBox> install coldbox
CommandBox> install testbox --saveDev
Bendera --saveDev menandakan pakej sebagai kebergantungan pembangunan, bukan kebergantungan pengeluaran. Anda juga boleh menentukan versi tertentu menggunakan julat versi semantik, contohnya install foo@1.2.3 untuk versi tepat, install foo@4.x untuk mana-mana versi utama 4, atau install "foo@>5.2 <=6.3.4" untuk julat.
Untuk mencari pakej, gunakan forgebox search:
CommandBox> forgebox search lmajano
Apabila anda mahu membuang pakej, gunakan uninstall. Jika pakej itu ialah modul sistem, tambahkan bendera --system:
CommandBox> uninstall coldbox
CommandBox> package uninstall commandbox-fusionreactor --system
package list dan package show
Untuk melihat apa yang sudah dipasang dalam projek semasa, gunakan arahan package list. Ia menyenaraikan pakej dan kebergantungannya, dan menyokong bendera --JSON untuk output yang boleh diproses:
CommandBox> package list
CommandBox> package list --JSON
Arahan package show memaparkan sifat tertentu daripada fail box.json projek, berguna dalam skrip:
CommandBox> package show name
CommandBox> package show dependencies
Gabungan kedua-dua arahan ini memudahkan anda menyemak keadaan projek sebelum deploy atau sebelum menjalankan ujian.
Menjalankan Pelayan Lucee dengan server start
Ciri paling menyerlah CommandBox ialah pelayan CFML terbenam. Anda boleh menjadikan mana-mana folder sebagai root web pelayan dengan hanya menjalankan arahan start di dalam folder tersebut:
CommandBox> cd /path/ke/projek
CommandBox> start
Dalam beberapa saat, CommandBox memilih port yang tersedia dan membuka pelayar menunjukkan dokumen lalai aplikasi anda. Pelayan terbenam ini tidak memerlukan Apache, IIS atau Nginx. Ia menggunakan pelayan web Java yang ringan bernama Undertow, dan konteks CFML digunakan secara programatik melalui fail WAR. Pelayan ini juga memberi anda akses penuh kepada pentadbir web Lucee, di mana anda boleh menambah sumber data dan pemetaan. Untuk menghentikan pelayan, jalankan:
CommandBox> stop
Jika anda mahu pelayan berjalan pada enjin CFML tertentu, anda boleh menentukannya dalam arahan atau fail konfigurasi, contohnya cfengine=lucee@7.
Mengurus Pelayan: server list dan restart
CommandBox menyimpan maklumat setiap pelayan yang pernah anda mulakan dalam fail ~/.CommandBox/servers.json. Anda boleh melihat senarai pelayan dan keadaan semasanya dengan server list:
CommandBox> server list
CommandBox> server list --running
Setiap pelayan dikenal pasti dengan nama pendek yang diambil daripada nama folder root webnya, jadi anda boleh mengurus berbilang pelayan dari mana-mana direktori:
CommandBox> start site1
CommandBox> restart site2
CommandBox> stop --all
Untuk membuang semua konfigurasi, log dan fail WEB-INF sesuatu pelayan, gunakan server forget. Perintah server info pula memaparkan maklumat terperinci pelayan, termasuk laluan direktori rumah dan laluan log.
Fail box.json
Fail box.json ialah deskriptor projek yang berada di root projek anda. Ia menerangkan nama projek, versi, kebergantungan dan kebergantungan pembangunan, serta data arahan CommandBox. Untuk memulakan folder sebagai pakej, jalankan arahan init:
CommandBox> init name="Projek Saya" slug=projek-saya version=1.0.0
Berikut contoh struktur box.json yang ringkas dengan kebergantungan:
{
"name": "Projek Saya",
"slug": "projek-saya",
"version": "1.0.0",
"dependencies": {
"coldbox": "^7.0.0"
},
"devDependencies": {
"testbox": "^7.0.0"
}
}
Apabila anda menjalankan install tanpa hujah, CommandBox memasang semua kebergantungan yang disenaraikan dalam box.json. Ini membolehkan ahli pasukan lain mengklon projek anda dan menyediakan persekitaran yang sama dengan satu arahan.
Fail server.json
Setiap kali anda memulakan pelayan, tetapan yang digunakan disimpan dalam fail server.json dalam root web. Apa-apa parameter yang tidak dibekalkan kepada arahan start akan dibaca daripada fail ini sebagai lalai. Ini bermakna anda boleh menyeragamkan port, enjin CFML, saiz timbunan JVM dan tetapan lain untuk seluruh pasukan:
{
"name": "projek-saya",
"web": {
"http": {
"port": 8080
}
},
"app": {
"cfengine": "lucee@7"
},
"jvm": {
"heapSize": 512
}
}
Dengan server.json dikomit ke dalam repositori, setiap pembangun mendapat pelayan yang sama tanpa perlu mengingati bendera baris arahan.
CommandBox dalam Aliran Kerja Harian
Dalam kerja harian, CommandBox menggantikan beberapa langkah manual. Daripada memasang Lucee dan Tomcat secara berasingan, anda hanya menjalankan start dalam folder projek. Daripada memuat turun perpustakaan secara manual, anda menjalankan install. Anda boleh menulis skrip tugas (task runner) dalam CFML untuk mengautomasikan binaan dan ujian, dan anda boleh menggunakan watcher untuk menjalankan ujian secara automatik apabila fail berubah. Aliran kerja ini dijelaskan lebih lanjut dalam panduan menulis ujian dengan TestBox.
Perbandingan dengan Pemasangan Tomcat Tradisional
Pemasangan Lucee tradisional memerlukan anda memasang Tomcat, meletakkan fail lucee.jar atau lucee.war ke dalamnya, dan mengkonfigurasi enjin servlet secara manual. CommandBox memendekkan keseluruhan proses ini. Jadual berikut membandingkan kedua-dua pendekatan:
| Aspek | Tomcat tradisional | CommandBox |
|---|---|---|
| Pemasangan awal | JDK, Tomcat dan Lucee berasingan | Satu binari, ekstrak sendiri |
| Pelayan web | Apache, IIS atau Nginx diperlukan | Undertow terbina dalam |
| Mulakan pelayan | Konfigurasi manual servlet | Satu arahan start |
| Pengurusan pakej | Tiada, muat turun manual | install dan uninstall |
| Konfigurasi berulang | Fail XML servlet | server.json dan box.json |
| Sesuai untuk | Pengeluaran dengan pelayan web di hadapan | Pembangunan, automasi dan ujian |
Kedua-dua pendekatan menghasilkan enjin Lucee yang sama, tetapi CommandBox jauh lebih pantas untuk pembangunan tempatan dan automasi. Untuk pengeluaran berskala besar dengan pelayan web di hadapan, pemasangan tradisional atau Docker masih menjadi pilihan, seperti yang diterangkan dalam panduan deploy Lucee dengan Docker.
Soalan Lazim (FAQ)
Apakah CommandBox dalam konteks CFML?
CommandBox ialah CLI daripada Ortus Solutions yang menggabungkan pengurus pakej, pelayan CFML terbenam dan REPL dalam satu alat. Ia ditulis dalam CFML dan boleh memasang pakej dari ForgeBox serta memulakan pelayan Lucee terus dari folder projek.
Bagaimana cara memasang CommandBox?
Pada macOS guna brew install commandbox. Pada Linux Debian atau Ubuntu, tambah repositori Ortus dan jalankan sudo apt-get install commandbox. Pada Windows, ekstrak box.exe dan jalankan terus.
Bagaimana cara memulakan pelayan Lucee dengan CommandBox?
Masuk ke folder projek anda dan jalankan arahan start. CommandBox memilih port tersedia dan membuka pelayar dalam beberapa saat. Untuk berhenti, jalankan stop dari folder yang sama.
Apakah perbezaan antara box.json dan server.json?
box.json menerangkan projek dan kebergantungannya, manakala server.json menyimpan tetapan pelayan seperti port, enjin CFML dan saiz timbunan JVM. Kedua-duanya boleh dikomit ke repositori untuk konsistensi pasukan.
Apakah kelebihan CommandBox berbanding Tomcat tradisional?
CommandBox tidak memerlukan Apache, IIS atau Nginx kerana ia menggunakan Undertow terbina dalam, dan ia tidak memerlukan pemasangan enjin CFML terlebih dahulu. Ia juga menyediakan pengurusan pakej dan konfigurasi berulang melalui fail JSON.
Sumber
- CommandBox Manual - Introduction, commandbox.ortusbooks.com
- Getting Started Guide, commandbox.ortusbooks.com
- Installation, commandbox.ortusbooks.com
- Embedded Server, commandbox.ortusbooks.com
- Package Management, commandbox.ortusbooks.com
- Box.json, commandbox.ortusbooks.com
- Manage Servers, commandbox.ortusbooks.com
- Server.json, commandbox.ortusbooks.com