Pegjs: Ruang Kerja Benang

Dibuat pada 16 Mar 2018  ·  6Komentar  ·  Sumber: pegjs/pegjs

Setelah 0.11 (tetapi sebelum 0.12 ) saya berencana untuk mengatur ulang repositori menjadi monorepo menggunakan ruang kerja Yarn dan mengimplementasikan kembali modul pegjs menjadi modul independen yang sebagian besar tinggal di @pegjs (dengan tata bahasa resmi di @peg ).

Di bawah ini adalah daftar modul yang saat ini saya rencanakan untuk diterapkan, tetapi ini mungkin berubah sebelum 0.12 dirilis.

Modul

  • @pegjs/lib wrappers untuk fitur terbaru ECMAScript yang digunakan oleh PEG.js
  • @pegjs/util kode umum yang dibagikan di seluruh paket PEG.js
  • @pegjs/harness satu set modul untuk menyederhanakan pengujian PEG.js dan alat serupa
  • @pegjs/desain perpustakaan fungsi dan kelas untuk membantu membangun AST dan spesifikasi
  • @pegjs/config mengelola dan secara opsional memverifikasi opsi yang digunakan oleh PEG.js
  • @pegjs/kelas ast bahasa , opcode, penulis kode dasar dan kelas kesalahan
  • @pegjs/parser pengurai tata bahasa PEG.js
  • @pegjs/bytecode metode untuk bekerja dengan bytecode PEG.js
  • @pegjs/runtime runtime untuk parser yang dihasilkan
  • @pegjs/linter berbagai pass yang dapat digunakan untuk memeriksa sumber tata bahasa atau ast
  • @pegjs/javascript generator kode ES5/ES20x untuk kompiler PEG.js
  • @pegjs/compiler menjalankan linter dan lebih banyak pass, sebelum membuat parser
  • @pegjs/core perpustakaan api utama
  • @pegjs/cli https://en.wikipedia.org/wiki/Command-line_interface
  • @pegjs/repl https://en.wikipedia.org/wiki/Read –eval–print_loop
  • @pegjs/run #522

Antarmuka

  • pegjs Rilis mandiri untuk Node.js yang mengarah ke rilis minor terbaru (mis 0.12.x )
  • @pegjs/browser rilis browser (saat ini paket bower)
  • @pegjs/x Tidak ada plugin, single pass, opsi minimal, dan varian kecepatan saja (terinspirasi oleh #348)
  • @pegjs/e menambahkan fitur eksperimental ke tata bahasa dan API (testbed untuk penggunaan umum)
feature task

Komentar yang paling membantu

@StoneCypher Pegang pasangan kuda Anda Benang hanyalah alternatif untuk NPM, sehingga pengguna hilir dapat memiliki NPM, Benang atau banyak lainnya yang bermunculan, tanpa khawatir tentang ruang kerja karena ini adalah fitur yang hanya akan digunakan oleh root package.json ( "private": true ) dalam repo ini, semua sub-modul yang disebutkan di atas akan menjadi modul independen yang diterbitkan di NPM yang memisahkan bagian-bagian berbeda dari kode dan hanya membuat hidup lebih mudah bagi saya atau siapa pun yang mengembangkan dan/atau meretas kompiler PEG.js.

Juga, Rollup dan Babel menangani masalah yang berbeda satu sama lain dan Benang:

  • Benang adalah manajer paket dengan dukungan ruang kerja
  • Rollup adalah bundler seperti Browserify, hanya menghapus kode buntu
  • Babel adalah transpiler ES2018+ ke ES*

Semua 6 komentar

apakah ini berarti bahwa pengguna hilir harus beralih ke benang?

Tolong jangan pindahkan salah satu alat utama internet ke dalam strategi pengembangan eksperimental khusus pada infrastruktur bangunan berbeda yang dikelola oleh perusahaan yang banyak dari kita tidak percaya

Benang sekarat dan ruang kerja dirancang dengan buruk

Sebagian besar pengguna simpul tidak akan beralih ke benang untuk Anda

https://stackoverflow.com/questions/46947557/do-yarn-workspaces-work-with-npm-too

Saya akan dengan senang hati membantu Anda membangun struktur bangunan modern yang normal yang tidak mengharuskan semua orang untuk beralih alat ke barang-barang Facebook, jika Anda menginginkan bantuan itu

Anda dapat menggunakan rollup dan babel (atau sejumlah pengaturan lainnya) untuk membuat ES5 biasa dari itu tanpa overhead. Tidak memerlukan infrastruktur baru yang lengkap.

Dalam prosesnya saya dapat menambahkan beberapa hal penting lainnya, seperti dukungan TypeScript dan flowtype, dukungan modul es6, dan hal-hal lain

@StoneCypher Pegang pasangan kuda Anda Benang hanyalah alternatif untuk NPM, sehingga pengguna hilir dapat memiliki NPM, Benang atau banyak lainnya yang bermunculan, tanpa khawatir tentang ruang kerja karena ini adalah fitur yang hanya akan digunakan oleh root package.json ( "private": true ) dalam repo ini, semua sub-modul yang disebutkan di atas akan menjadi modul independen yang diterbitkan di NPM yang memisahkan bagian-bagian berbeda dari kode dan hanya membuat hidup lebih mudah bagi saya atau siapa pun yang mengembangkan dan/atau meretas kompiler PEG.js.

Juga, Rollup dan Babel menangani masalah yang berbeda satu sama lain dan Benang:

  • Benang adalah manajer paket dengan dukungan ruang kerja
  • Rollup adalah bundler seperti Browserify, hanya menghapus kode buntu
  • Babel adalah transpiler ES2018+ ke ES*

selama ini tidak memaksa saya menjadi benang

Jadi, Anda memaksa saya menjadi benang. Beberapa PR dari orang lain yang Anda tolak untuk digabungkan telah mencoba mengeluarkannya kembali, karena yarn sedang sekarat, dan alat berkualitas rendah yang tidak bekerja dengan baik di Windows.

yarn tidak memberikan nilai.

yarn menawarkan penghalang yang signifikan - banyak orang tidak akan menginstal manajer paket baru untuk membantu Anda (saya menolak beberapa kali sebelum mogok,) dan banyak orang lain tidak diizinkan karena kebijakan kerja.

Perilaku npm telah berubah. yarn tidak mengikuti. Perilaku yarn sekarang sangat berbeda dari ekspektasi masyarakat.

Monorepo juga tidak memberikan nilai, menciptakan langkah pembangunan ekstra yang kompleks, menentang norma, dan membingungkan kontributor potensial.

Semua ini jauh lebih banyak pekerjaan daripada pekerjaan fitur yang tidak Anda lakukan.

Saya pikir Anda mungkin bingung tentang sifat keberatan saya.

Ini adalah pekerjaan yang sia-sia yang mempersulit orang untuk bergabung (bukan berarti itu penting, karena sejak bulan lalu Anda benar-benar membuat tidak mungkin bagi siapa pun untuk berkontribusi pada apa yang sekarang Anda sebut "proyek hobi Anda," dan berharap untuk mengganti secara grosir.)

Ini memperlambat pembangunan, dan kehilangan alat baru yang npm memiliki yang tidak dimiliki yarn .

Benang sekarat pada tahun 2018. Ini tahun 2020. Benang pada dasarnya sudah mati sekarang.

Saya belum menginstalnya di komputer saya selama bertahun-tahun. Saya harus menginstal ulang untuk Anda.

Tolong biarkan ini menjadi proyek normal dengan pola pengembangan normal yang sehat lagi, alih-alih basis kode pribadi Anda menggunakan alat tambahan yang berjalan tiga tahun tanpa rilis meskipun ada perbaikan basis kode yang sangat penting dalam repo.

Ya, saya melihat Anda mencoba menjelaskan apa yang dilakukan yarn , tetapi semua orang tahu apa yang dilakukan yarn .

Anda menciptakan persis infrastruktur baru yang saya minta untuk tidak Anda buat dua tahun lalu, dan saat ini Anda membuangnya karena alasan yang saya katakan tidak akan berhasil.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

dmajda picture dmajda  ·  7Komentar

futagoza picture futagoza  ·  13Komentar

dmajda picture dmajda  ·  15Komentar

StoneCypher picture StoneCypher  ·  8Komentar

mattkanwisher picture mattkanwisher  ·  5Komentar