dalam luhur bagaimana batalkan bangunan sebelumnya secara otomatis ketika membangun lagi

1

Saya tahu bahwa ada pemetaan kunci untuk membatalkan pembangunan. Tapi saya ingin secara otomatis ketika saya menekan Ctrl + B, itu akan membatalkan yang dibangun sebelumnya.

  1. Apa itu mungkin?

  2. Apakah mungkin, bahwa bangunan "batal" akan melakukan beberapa pekerjaan. Dan bukan hanya menghentikan program (misalnya, mengirim sinyal kill, dan biarkan program NodeJS waktu untuk menutup semua soket ...)

Sebagai contoh:

http.createServer().listen(80)

Ini berfungsi saat pertama kali saya menekan Ctrl + B. tetapi di kedua kalinya, saya selalu tidak dapat mengikat ke port 80 ...

Aminadav Glickshtein
sumber
Sudahkah Anda mencoba ini ? Ini akan memungkinkan Anda untuk menjalankan Batalkan Bangun lalu Bangun.
NonlinearFruit
Mencari solusi yang lebih sederhana. Saya percaya ada paramater ke build_system untuk mengatakan bahwa itu akan berjalan hanya satu contoh pada satu waktu
Aminadav Glickshtein
Setelah membangun proyek, apakah Build kedua menyebabkan server mati pada akhirnya? Atau apakah server terus berjalan normal setelah build kedua?
NonlinearFruit
Apakah platform target Windows atau Linux? (Atau keduanya)
ThorSummoner

Jawaban:

2
  • Buat aplikasi Anda menulis file pid.

    Entah di skrip build tempat layanan tersebut ditulis, tulis pid Anda sendiri. Atau dengan layanan itu sendiri, Hal-hal seperti Apache dan NGinx harus menulis di tempat mereka sendiri. Jika ini aplikasi Anda, Anda mungkin mempertimbangkan untuk menulis file pid Anda sendiri. Lokasi yang biasa saya ketahui adalah /var/rununtuk proses sistem, memulai layanan web mungkin memenuhi syarat, atau ~/.appname, itu file tersembunyi dinamai aplikasi yoru di direktori home Anda.

    Di Lingkungan WindowsNT, mendapatkan pid Anda mungkin rumit , dan mematikan proses dengan pid juga mungkin rumit.

  • Pada build, sebelum memunculkan aplikasi Anda, bunuh proses build sebelumnya dengan id, yang ditentukan dalam pidfile.

Kode prototipe:

Verbose dan berkomentar: https://gist.github.com/thorsummoner/f1fc7acf94cf9696ef75

Saya tidak bisa memaksakan diri lagi dan ~ 70 baris kode berorientasi fungsi dan dimaksudkan untuk dimodifikasi untuk penggunaan khusus.

Ini juga tidak diuji karena saya tidak memiliki kasus penggunaan yang sangat baik untuk ini.

ThorSummoner
sumber
1
Saya akan melihat prototipe cara untuk melakukan ini dalam bahasa asli yang luhur malam ini, meskipun saya tidak dapat memberikan jaminan bahwa itu akan bekerja di Windows
ThorSummoner
1
@Amina Bisakah Anda memberikan contoh file .sublime-build Anda saat ini? atau membangun konfigurasi sistem?
ThorSummoner