Boleh ditulis semula sebagai: Adakah mungkin untuk menggunakan modul npm dalam sambungan Chrome?
P粉217629009
2023-08-22 23:09:19
<p>Saya mencubanya, tetapi mendapat ralat "memerlukan tidak ditakrifkan". Saya tidak dapat mencari maklumat tentang ralat ini, bolehkah seseorang menerangkannya kepada saya? </p>
Jawapan dikemas kini untuk 2022
Jawapan ringkas: Ya, anda boleh memerlukan/mengimport pakej. Daripada bersusah payah menyediakan dan mengkonfigurasi alat pembungkusan seperti Webpack sendiri (terutamanya jika anda belum menggunakannya), kini terdapat alat binaan yang boleh anda gunakan untuk membuat kod boilerplate untuk sambungan Chrome:
Kebaikan menggunakannya:
npm
seperti biasa untuk memasang sebarang pakej/pergantungan yang anda perlukan.Kemudian, sudah tentu, biarkan Dokumentasi rasmi untuk sambungan Chrome membimbing anda melalui yang lain.
Boleh, tapi kena berhati-hati. Percubaan untuk menggunakan require() untuk memuatkan pakej bermakna Node akan cuba mencari failnya dalam sistem fail anda. Sambungan Chrome hanya boleh mengakses fail yang anda isytiharkan dalam manifes anda, bukan sistem fail anda.
Untuk menyelesaikan masalah ini, gunakan alat penggabungan modul seperti Webpack, yang akan menjana satu fail JavaScript yang mengandungi kod untuk semua pakej yang diperkenalkan melalui require(). Anda perlu menjana modul berasingan untuk setiap sambungan Chrome anda (cth. halaman latar belakang, skrip kandungan, pop timbul) dan mengisytiharkan setiap modul yang dijana dalam manifes.
Untuk mengelak daripada cuba menyediakan sistem binaan agar require() tersedia, saya syorkan bermula dengan projek boilerplate. Anda boleh menyemak sambungan saya untuk melihat cara saya melakukannya.