Saya memiliki sejumlah besar file javascript yang dibagi menjadi 4 subdirektori di aplikasi saya. Dengan mendengus saya mengambil semuanya dan mengkompilasinya menjadi satu file. File-file ini tidak memiliki fungsi module.exports.
Saya ingin menggunakan webpack dan membaginya menjadi 4 bagian. Saya tidak ingin masuk secara manual dan memerlukan semua file saya.
Saya ingin membuat sebuah plugin yang saat kompilasi berjalan di pohon direktori, lalu mengambil semua nama dan jalur file .js, kemudian membutuhkan semua file di sub direktori dan menambahkannya ke output.
Saya ingin semua file di setiap direktori dikompilasi menjadi modul yang kemudian dapat saya perlukan dari file titik masuk saya, atau disertakan dalam aset yang disebutkan oleh http://webpack.github.io/docs/plugins.html .
Saat menambahkan file baru, saya hanya ingin meletakkannya di direktori yang benar dan tahu itu akan dimasukkan.
Apakah ada cara untuk melakukan ini dengan webpack atau plugin yang ditulis seseorang untuk melakukan ini?
sumber
image-size-loader
untuk semua gambar untuk membuat placeholder dengan rasio aspek yang benar.loaders: [ { test: /\.json$/, loader: 'json' } ]
.{ test: /\.json$/, loader: 'json' }
menambahkan json loader untuk file .json, selama Anda telah menginstal loader tersebut.require.context(...)
Anda (misalnya jika Anda mencoba meminta semuanya di beberapa folder), webpack akan memberikan peringatan. Argumenrequire.context
harus berupa konstanta waktu kompilasi.require-context
pembungkuswebpack
, dan sampelnya diambil dariwebpack
dokumentasi di webpack.js.org/guides/dependency-management/#context-module-api - yang ditambahkan pada 2016 (di github.com/webpack/ webpack.js.org/commit/… ), juga setelah saya menulis jawaban saya ... Mungkin penulis webpack terpengaruh oleh jawaban saya. Perhatikan bahwa mereka memperluasnya untuk memiliki cache.Di file aplikasi saya, saya akhirnya memasukkan persyaratan
milik posting ini: https://github.com/webpack/webpack/issues/118
Sekarang menambahkan semua file saya. Saya memiliki loader untuk html dan css dan tampaknya berfungsi dengan baik.
sumber
expr
dalam contoh ini?expr
adalah jalur ke satu file dalam folder konteks. jadi jika Anda perlu melakukan ini tidak hanya karena membutuhkan semua file html, ini berguna. webpack.github.io/docs/context.html#context-module-apiexpr
argumen berbasis di sini bahkan setelah melihat dokumen webpack. apa artinya "melakukan ini tidak hanya untuk meminta semua file html"? terima kasihexpr
artinya di siniBagaimana dengan peta semua file dalam satu folder?
Melakukan hal ini:
sumber
Contoh bagaimana mendapatkan peta dari semua gambar di folder saat ini.
sumber
Semua manfaat untuk @splintor (terima kasih).
Tapi ini dia versi turunan saya sendiri.
Manfaat:
{module_name: exports_obj}
objek.Kode (Versi Asli):
Contoh:
Output sampel untuk akhirnya
console.log(allModules);
:Pohon direktori:
Kode (Versi Dalam):
Contoh:
Hasil dari contoh sebelumnya menggunakan versi ini:
sumber
ini berhasil untuk saya:
CATATAN: ini membutuhkan file .js dalam subdir dari ./js/ secara rekursif.
sumber