Vm2: Tambahkan modul `coffee-script` sebagai dependensi

Dibuat pada 8 Apr 2017  ·  23Komentar  ·  Sumber: patriksimek/vm2

Saat menjalankan modul Anda melalui kode yang diubah oleh webpack/babel, saya mendapatkan masalah berikut:

Module not found: Error: Can't resolve 'coffee-script' in '/node_modules/vm2/lib'
 @ ./~/vm2/lib/main.js 19:10-34
 @ ./~/vm2/index.js
 @ ./lib/config.js
 @ ./lib/server.js

https://github.com/patriksimek/vm2/blob/master/lib/main.js#L19

Di baris ini Anda menggunakan modul coffee-script , tetapi tidak didefinisikan sebagai dependensi modul.
Jadi, ketika webpack mencoba memetakan semua kebutuhan, ia macet karena tidak dapat menemukan modul coffee-script di mana pun.

UPD: ini bukan permintaan fitur, ini masalah dependensi modul vm2. Sampai modul ini memiliki baris ini, itu tidak akan berfungsi dengan opsi kompiler yang ditentukan sebagai coffee-script pada lingkungan apa pun tanpa modul skrip kopi diinstal.

wontfix

Komentar yang paling membantu

@dkfiresky Wow, Anda benar-benar mengharapkan saya untuk memaksa puluhan ribu pengguna mengunduh skrip kopi meskipun mereka tidak membutuhkannya hanya karena Anda tidak mau menunggu solusi yang tepat? Itu menyedihkan.

@n-riesco Sebenarnya ini sudah didukung. Masalahnya adalah bahwa menghentikan dukungan untuk opsi coffeescript adalah perubahan yang melanggar dan saya ingin mencoba solusi yang lebih baik terlebih dahulu (jika ada).

Semua 23 komentar

Terima kasih telah melaporkan masalah. Saya hampir tidak memiliki pengalaman dengan Webpack jadi mungkin saya salah, tetapi bagaimana jika Anda menambahkan coffee-script sebagai ketergantungan pada proyek induk? Saya berasumsi proses Webpack memerlukan cara yang sama dengan Node - ia mencari semua folder node_modules hingga ke root.

Saya tidak ingin menambahkan coffee-script sebagai ketergantungan proyek saya sendiri hanya karena modul Anda memerlukannya. Saya tidak menggunakan coffee-script .

Jika Anda menggunakan modul seseorang dalam proyek Anda sendiri, Anda harus mendeklarasikannya sebagai dependensi.

Juga jika seseorang akan menginstal modul Anda dan orang itu tidak akan menginstal modul coffee-script di mana saja (dalam proyek atau global), itu juga akan memicu kesalahan itu. Itu tidak tergantung pada Webpack.

Ok saya pikir Anda menggunakan skrip kopi. Dalam hal ini, perpustakaan ini bukan atm yang kompatibel dengan webpack. Saya akan mencoba mencari tahu ini jika saya punya waktu luang.

Ini bukan kasus kompatibilitas dengan webpack.

Ini adalah kasus bagaimana Anda mempublikasikan dan memasok modul Anda ke npm.

Saya tidak setuju, perpustakaan ini berfungsi tanpa skrip kopi dengan benar sehingga tidak ada alasan untuk menautkannya sebagai ketergantungan yang diperlukan. Ini hanya digunakan ketika pengguna secara eksplisit menyatakan bahwa dia ingin menggunakan skrip kopi. Saya akan refactor ini ke beberapa jenis mekanisme plugin.

Alasannya adalah bahwa Anda secara eksplisit memerlukan coffee-script dalam kode Anda, yang menganggap itu harus diinstal entah bagaimana.

Jika Anda sudah menginstal coffee-script di mesin Anda – tidak apa-apa dan akan berfungsi, jika tidak maka akan menyebabkan masalah ketika saya tidak menginstal coffee-script di mana pun dan meluncurkan vm dengan set opsi kompiler ke salah satu dari 'skrip kopi', 'skrip kopi', 'cs' atau 'teks/skrip kopi' (sebagaimana dinyatakan dalam https://github.com/patriksimek/vm2/blob/master/lib/main.js#L14- L18).

Saya juga tidak setuju bahwa ini adalah feature request karena modul Anda tidak bekerja dengan kompiler coffee-script jika belum diinstal. Dan dokumentasi tidak mengatakan apa-apa tentang persyaratan coffee-script untuk pra-instal.

Ya, Anda telah menjelaskan dengan tepat cara kerjanya sekarang. Pustaka mengharapkan pengguna untuk menginstal skrip kopi jika kompiler disetel ke kopi.

Anda benar tentang dokumen, ini diperbarui.

Ya, perbaikan dokumentasi tidak menyelesaikan masalah. Anda masih memiliki baris require('coffee-script') dalam kode Anda, yang akan menghasilkan kesalahan, setidaknya untuk webpack.

Ya, dan seperti yang saya tulis di posting sebelumnya, saya akan refactor ini ke beberapa jenis mekanisme plugin sehingga akan kompatibel dengan webpack.

Sudahlah, jika sangat sulit bagi Anda untuk menjalankan satu perintah sederhana:

> npm install coffee-script --save

Saya tidak akan lagi menggunakan atau menunggu proyek Anda memperbaiki masalah.

@patriksimek Secara pribadi, saya melihat manfaat memiliki semacam mekanisme plugin.

Bagaimana dengan sesuatu yang sederhana seperti options.compiler menjadi sebuah fungsi?

Kemudian pengguna yang membutuhkan CoffeeScript dapat mengatur options.compiler menjadi (code) => { return require('coffee-script').compile(code, {header: false, bare: true}); } .

@dkfiresky Wow, Anda benar-benar mengharapkan saya untuk memaksa puluhan ribu pengguna mengunduh skrip kopi meskipun mereka tidak membutuhkannya hanya karena Anda tidak mau menunggu solusi yang tepat? Itu menyedihkan.

@n-riesco Sebenarnya ini sudah didukung. Masalahnya adalah bahwa menghentikan dukungan untuk opsi coffeescript adalah perubahan yang melanggar dan saya ingin mencoba solusi yang lebih baik terlebih dahulu (jika ada).

@patriksimek Saya berharap Anda mengirimkan modul Anda dengan benar. Penggunaan kopi-script adalah tanggung jawab Anda sendiri. Jika Anda menggunakannya, Anda harus mendefinisikannya sebagai ketergantungan. Jika Anda tidak setuju, hapus pernyataan yang membutuhkan dan opsi kompiler yang menyatakan coffee-script sebagai opsi.

Masalah ini dibuat karena modul Anda tidak berfungsi di luar kotak. Menunggu 18 hari bagi Anda untuk menjalankan perintah instal sederhana terdengar seperti lelucon.

Terlebih lagi jika Anda menyatakan bahwa modul Anda dikompilasi coffee-script , Anda harus mengirimkan modul itu sebagai dependensi dalam package.json Anda .

Anda benar-benar mengharapkan saya untuk memaksa puluhan ribu pengguna mengunduh skrip kopi

Itu yang Anda lakukan dengan require('coffee-script') dalam kode Anda . Anda mengharapkan saya untuk menginstal skrip kopi meskipun saya tidak menggunakannya.

Menunggu 18 hari bagi Anda untuk menjalankan perintah instal sederhana terdengar seperti lelucon.

Anda masih mengharapkan saya untuk melakukan apa yang saya katakan tidak akan pernah saya lakukan. Jadi sekali lagi - modul ini tidak kompatibel dengan Webpack saat ini, tolong, jangan gunakan perpustakaan ini.

@patriksimek modul ini tidak kompatibel atau tidak dapat dijalankan di lingkungan apa pun tanpa coffee-script diinstal.

@dkfiresky Tentu, jika Anda berpikir begitu. Saya tidak lagi tertarik untuk meyakinkan Anda bahwa Anda salah. Bisakah kita menghentikan diskusi yang tidak berguna ini?

@patriksimek ya, tentu. Silakan baca beberapa dokumen npm.

Saya mendapatkan ini juga dalam proyek reaksi baru, sebelum saya menambahkan vm2 sebagai ketergantungan, saya tidak memiliki kesalahan tentang skrip kopi

Failed to compile.

/Users/mark/node_modules/coffee-script/lib/coffee-script/coffee-script.js
Module not found: Can't resolve 'module' in '/Users/mark/node_modules/coffee-script/lib/coffee-script'

Meskipun nada diskusinya tidak terlalu konstruktif, saya sangat yakin coffee-script harus ditambahkan sebagai dependensi. Ini akan menjadi solusi yang sangat sederhana dan memungkinkan penggunaan paket ini di berbagai lingkungan (misalnya Webpack, Next, dll.).

Apakah halaman ini membantu?
0 / 5 - 0 peringkat