Kami tidak jauh dari versi resmi pertama dari pembuat kode, namun perlu diingat bahwa beberapa bagian ekosistem masih bersifat eksperimental.
teleportHQ adalah platform kode rendah yang memungkinkan tim membangun aplikasi melalui antarmuka alat desain yang sudah dikenal, secara real-time.
Repositori ini menyimpan generator kode yang mendukung editor visual platform.
Perekat antara platform dan pembuat kode adalah Standar UIDL . UIDL mendefinisikan antarmuka pengguna secara abstrak , tidak bergantung pada kerangka apa pun atau bahkan platform web itu sendiri. Mulai dari UIDL, Anda dapat mengubah abstraksi tersebut menjadi berbagai jenis pengkodean (misalnya React, Vue, WebComponents, dll.).
Pembuat kode ini adalah bagian dari ekosistem yang lebih besar, yang kami bangun secara aktif dalam upaya menyederhanakan pembuatan aplikasi web. Anda dapat membaca lebih lanjut tentang awal mula kami di artikel ini.
Filosofi dibalik pembuat kode adalah:
React
, juga dapat dibangun dengan Vue
atau di atas standar Web Components
- kami mendukung banyak targetBaca lebih lanjut tentang Standar UIDL.
Cara termudah untuk terjun ke ekosistem teleportasi adalah dengan mencoba salah satu generator komponen yang telah dikonfigurasi sebelumnya :
npm install @teleporthq/teleport-component-generator-react
npm install @teleporthq/teleport-component-generator-vue
npm install @teleporthq/teleport-component-generator-angular
atau menggunakan benang:
yarn add @teleporthq/teleport-component-generator-react
yarn add @teleporthq/teleport-component-generator-vue
yarn add @teleporthq/teleport-component-generator-angular
Untuk menghasilkan komponen sederhana, Anda harus memulai dari komponen UIDL :
{
"name" : " My First Component " ,
"node" : {
"type" : " element " ,
"content" : {
"elementType" : " text " ,
"children" : [
{
"type" : " static " ,
"content" : " Hello World! "
}
]
}
}
}
Menggunakan generator komponen yang telah dikonfigurasi sebelumnya semudah memanggil fungsi async :
import ReactGenerator from '@teleporthq/teleport-component-generator-react'
const uidl = { ... } // your sample here
const { files } = await ReactGenerator . generateComponent ( uidl )
console . log ( files [ 0 ] . content )
Output konsol akan menjadi seperti ini:
import React from 'react'
const MyFirstComponent = ( props ) => {
return < span > Hello World! < / span >
}
export default MyFirstComponent
Untuk kerangka lain, cukup ganti paketnya:
import VueGenerator from '@teleporthq/teleport-component-generator-vue'
const uidl = { ... } // your sample here
const { files } = await VueGenerator . generateComponent ( uidl )
console . log ( files [ 0 ] . content )
Output konsol akan menjadi seperti ini:
< template >
< span >Hello World!</ span >
</ template >
< script >
export default {
name : ' MyFirstComponent ' ,
}
</ script >
Anda dapat bermain-main dengan struktur UIDL dan juga mengamati kode yang dihasilkan di REPL online. Saat berada di sana, Anda juga dapat memeriksa berbagai contoh komponen yang ditulis dalam format UIDL.
Ekosistem teleportasi terdiri dari tiga kategori utama paket: generator komponen , generator proyek , dan pengemas proyek .
Kami memiliki generator komponen resmi untuk beberapa kerangka kerja frontend web yang populer. Lihat dokumen resmi untuk pemahaman mendalam tentang arsitektur di balik generator komponen.
Semua generator komponen menampilkan sebuah instance dari paket teleport-component-generator
. Anda juga dapat menginstal paket ini dan membuat generator Anda sendiri dengan plugin, pemetaan, dan postprocessor.
Di dokumen, Anda akan menemukan panduan lengkap tentang cara membuat generator komponen khusus Anda.
teleport-component-generator-react
- dengan gaya: css-modules
, styled-components
, styled-jsx
, dll.teleport-component-generator-vue
- menghasilkan file .vue
standarteleport-component-generator-angular
- menghasilkan file .ts
, .html
, dan .css
teleport-component-generator-html
- (eksperimental)teleport-component-generator-svelte
- (segera hadir) Berikut daftar fungsi yang didukung oleh UIDL dan generator komponen saat ini, selain lapisan presentasi yang jelas:
Generator proyek mengandalkan masukan ProjectUIDL
dan strategi proyek . ProjectUIDL
akan berisi semua informasi tentang perutean, halaman, komponen, dan pengaturan global. Strategi ini akan memberi tahu generator di mana harus meletakkan setiap file dan komponen generator mana yang akan digunakan.
Generator akan menampilkan struktur abstrak dengan folder dan file, tanpa menulis apa pun ke disk. Pengemas proyek bertugas mengambil output dari generator proyek dan menerbitkannya di suatu tempat.
Periksa panduan resmi tentang cara menggunakan generator proyek yang ada atau cara membuat konfigurasi khusus Anda
teleport-project-generator-react
- react
+ react-router
dan css-modules
di atas create-react-app
teleport-project-generator-next
- berdasarkan Next.jsteleport-project-generator-vue
- dengan struktur yang dimulai dari vue-cli
teleport-project-generator-nuxt
- berdasarkan Nuxt.jsteleport-project-generator-angular
- berdasarkan pada angular-cli
teleport-project-generator-html
(eksperimental) Selain file dan folder biasa yang dihasilkan pada akhir proses, generator proyek juga menangani:
package.json
.index.html
atau sesuatu yang spesifik pada kerangka kerja). Setelah generator membuat kode untuk komponen dan halaman, pengemas proyek akan mengambil keluaran tersebut, meletakkannya di atas templat proyek yang ada, menambahkan aset lokal apa pun yang diperlukan, lalu meneruskan seluruh hasilnya ke penerbit . Penerbit mengkhususkan diri dalam menyebarkan seluruh struktur folder ke pihak ketiga seperti vercel
atau github
, atau dalam membuat file zip
di dalam memori atau sekadar menulis folder ke disk
.
teleport-publisher-vercel
teleport-publisher-github
teleport-publisher-codesandbox
teleport-publisher-zip
teleport-publisher-disk
teleport-publisher-netlify
(segera hadir)Beberapa tautan berguna untuk memberi Anda informasi terkini tentang seluruh ekosistem teleportasi :
Proyek ini menggunakan:
Untuk mencobanya secara lokal, kami merekomendasikan penggunaan yarn
karena terintegrasi lebih baik dengan lerna
dan semua kontributor menggunakannya:
yarn
Ini menginstal dependensi di folder root, tetapi juga membuat symlink antara modul independen di dalam folder packages
.
Untuk menyelesaikan pengaturan lerna, Anda perlu menjalankan:
yarn build
Ini akan menjalankan tugas build
di dalam setiap paket individual, membuat folder lib
keluaran. Kami memiliki dua keluaran untuk setiap paket: cjs
- modul gaya js umum dan esm
- modul es modern. Jika Anda ingin mempercepat waktu build, Anda dapat menjalankan build:cjs
saja untuk menghindari build esm
.
Menjalankan rangkaian pengujian:
yarn test
yarn test:coverage
Selain itu, ada paket private
di dalam folder lerna bernama teleport-test
. Paket tersebut dapat digunakan untuk menguji proses pembuatan kode/file dengan jenis generator proyek/komponen apa pun. Untuk mencobanya, Anda harus:
cd packages/teleport-test
npm run standalone
Versi mandiri menggunakan paket teleport-code-generator
dan templat yang dideklarasikan secara statis. Untuk menguji dengan templat github dan instance pengemas khusus, Anda harus:
cp config.example.json config.json
Anda harus mengganti placeholder dengan token github Anda sendiri. Kemudian Anda dapat menjalankannya dengan:
npm run packer
Versi pengemas ini menggunakan UIDL dari examples/uidl-sample
. Jika proses berhasil berjalan, Anda akan melihat respon dari project packer dengan format: { success: true, payload: 'dist' }
. Tugas ini menggunakan paket teleport-publisher-disk
dan menghasilkan empat file proyek berbeda di folder dist
.
Silakan buka terbitan untuk segala ketidakberesan, potensi bug yang Anda temukan saat menjalankan ini, atau jika Anda sekadar memiliki pertanyaan atau keingintahuan tentang proyek ini.
Bukan hanya kode kami yang bersifat open source, kami juga merencanakan pengembangan pembuat kode di GitHub. Kami memiliki sejumlah isu yang terbuka dan kami mengharapkan kontribusi lebih lanjut dalam hal ini.
Kami secara khusus tertarik untuk membuka diskusi seputar isu-isu yang ditandai dengan label discussion
.
Rilis resminya akan beralih ke versi 1.0
. ETA untuk ini adalah sekitar akhir tahun 2019.
Kami akan sangat senang jika ada keterlibatan komunitas dalam proyek ini. Kami sangat percaya pada kekuatan sumber terbuka , jadi kami berencana membangun pembuat kode terbaik, bersama dengan seluruh komunitas pengembangan.
Kami membayangkan berbagai jenis keterlibatan mulai saat ini:
Terima kasih kepada orang-orang hebat ini (kunci emoji):
Alex Moldova ? | Vlad Nikula ? | Paulus BRIE ? ? | mihaitaba ? | Mihai Serban | Jaya Krishna Namburu ? | Anamaria Oros |
ovidiuionut94 | alexpausan | Mihai Sampaleanu ? | dua | andreiTnu | Xavier Cazalot | Chavda Bhavik |
Eliza Nitoi | TudorCe ? | Dorottya Ferencz ? | William Gounot |
Proyek ini mengikuti spesifikasi semua kontributor. Kontribusi apa pun diterima!
Hubungi kami di salah satu saluran berikut: