Adakah yang tahu cara membuat beberapa jalur output di file webpack.config.js? Saya menggunakan bootstrap-sass yang datang dengan beberapa file font yang berbeda, dll. Untuk webpack untuk memproses ini saya telah menyertakan file-loader yang berfungsi dengan benar, namun file yang outputnya disimpan ke jalur output yang saya tentukan untuk sisa file saya:
output: {
path: __dirname + "/js",
filename: "scripts.min.js"
}
Saya ingin mencapai sesuatu di mana saya mungkin dapat melihat jenis ekstensi untuk apa pun keluaran webpack dan untuk hal-hal yang berakhir dengan .woff .eot, dll, minta mereka dialihkan ke jalur output yang berbeda. Apakah ini mungkin?
Saya melakukan sedikit googling dan menemukan masalah * ini di github di mana beberapa solusi ditawarkan, sunting:
tetapi sepertinya Anda perlu mengetahui titik masuk untuk dapat menentukan output menggunakan metode hash misalnya:
var entryPointsPathPrefix = './src/javascripts/pages';
var WebpackConfig = {
entry : {
a: entryPointsPathPrefix + '/a.jsx',
b: entryPointsPathPrefix + '/b.jsx',
c: entryPointsPathPrefix + '/c.jsx',
d: entryPointsPathPrefix + '/d.jsx'
},
// send to distribution
output: {
path: './dist/js',
filename: '[name].js'
}
}
* https://github.com/webpack/webpack/issues/1189
Namun dalam kasus saya, sejauh menyangkut file font, proses input agak abstrak dan semua yang saya tahu adalah output. dalam kasus file saya yang lain yang mengalami transformasi, ada titik yang diketahui di mana saya memerlukannya untuk kemudian ditangani oleh loader saya. jika ada cara untuk mencari tahu di mana langkah ini terjadi, saya kemudian bisa menggunakan metode hash untuk menyesuaikan jalur output, tetapi saya tidak tahu di mana file-file ini diperlukan.
module{}
Objeknya salah. Itu tidak wajib. Ini akan diperpanjang / digabung pada tingkat yang sama sebagai kata kunciname
,entry
,output
(dari contoh Anda). <pre> <code> {module: {mode: "development", devtool: "source-map"}}, nama: "a", entri: "./a/app", output: {path: "/ a ", filename:" bundle.js "}} </code> </pre>Webpack mendukung beberapa jalur keluaran.
Tetapkan jalur keluaran sebagai kunci entri. Dan gunakan
name
template keluaran sebagai.konfigurasi webpack:
dihasilkan:
sumber
dist
di dalamnya. Jadi, alih-alihmodule/a/index.js
menjadi jalur output, itu harus menjadimodule/a/dist/index.js
Atau yang lain, Anda menimpa file entri Anda.dist
Folder @Sung sudah dikonfigurasi di jalur output. Jadi file yang dihasilkan sebenarnyadist/module/a/index.js
, yang tidak saya sebutkan.output.filename
seperti yang didokumentasikan di sini: webpack.js.org/configuration/output/#outputfilenameJika Anda dapat hidup dengan beberapa jalur keluaran yang memiliki tingkat kedalaman dan struktur folder yang sama ada cara untuk melakukan ini di webpack 2 (belum pernah menguji dengan webpack 1.x)
Pada dasarnya Anda tidak mengikuti aturan doc dan Anda memberikan path untuk nama file.
Itu akan mengambil struktur folder ini
Dan mengubahnya menjadi
sumber
Saya menulis sebuah plugin yang diharapkan dapat melakukan apa yang Anda inginkan, Anda dapat menentukan titik masuk yang diketahui atau tidak dikenal (menggunakan glob ) dan menentukan keluaran yang tepat atau secara dinamis menghasilkan mereka menggunakan jalur dan nama file entri. https://www.npmjs.com/package/webpack-entry-plus
sumber
Anda pasti dapat mengembalikan berbagai konfigurasi dari file webpack.config Anda. Tapi itu bukan solusi optimal jika Anda hanya ingin salinan artefak berada di folder dokumentasi proyek Anda, karena itu membuat webpack membuat kode Anda dua kali lipat dua kali lipat keseluruhan waktu untuk membangun.
Dalam hal ini saya akan merekomendasikan untuk menggunakan plugin FileManagerWebpackPlugin sebagai gantinya:
sumber
Anda hanya dapat memiliki satu jalur output.
dari docs https://github.com/webpack/docs/wiki/configuration#output
sumber
Saya benar-benar akhirnya hanya masuk ke index.js dalam modul file-loader dan mengubah di mana isinya dipancarkan. Ini mungkin bukan solusi optimal, tetapi sampai ada cara lain, ini baik karena saya tahu persis apa yang sedang ditangani oleh loader ini, yang hanya font.
sumber