Artikel ini akan berkongsi dengan anda 10 soalan temu bual tentang pek web Semak sebarang jurang dan isikannya. Berapa banyak daripada sepuluh soalan temuduga ini yang boleh anda jawab dengan betul? Bolehkah anda mendapatkan mereka semua betul?
Soalan temu bual hanyalah buku asas, 快速刷题就是背
(penemuduga bertanya kepada anda, tetapi dia mungkin tidak begitu mendalam), 想深入理解还是得花大量精力
; 🎜>
初始化参数
开始编译
确定入口
bukannya 编译模块
webpack-dev-server boleh menyokong kemas kini panas Nilai cincang fail yang dijana digunakan untuk membandingkan modul yang perlu dikemas kini, dan penyemak imbas kemudian melakukan penggantian panas
完成模块编译并输出
输出完成
Buat pelayan pelayan
Tetapkan sistem fail kepada sistem fail memori开启了express应用
会通过sokcet消息告诉浏览器准备刷新
Tambah webpack-dev- middleware middleware 不用刷新网页
刷新某个模块
Middleware bertanggungjawab untuk mengembalikan fail yang dijana
Mulakan kompilasi webpack 服务端
JsonpMainTemplate.runtime. js akan dipanggil dan kemudian kaedah hotAddUpdateChunk HotModuleReplacement.runtime.js akan dipanggil untuk mengemas kini kod modul secara dinamik 客户端
计算hash后分割chunk
. 产生相同随机值可能是因为这些文件属于同一个chunk,可以将某个文件提到独立的chunk(如放入entry)
<% HtmlWebpackPlugin.options.loading.html %>
Dalam html-webpack-plugin, anda boleh mengkonfigurasi atribut html untuk menyuntik skrip ke dalam ProvidePlugin
: memuatkan modul secara automatik, menggantikan memerlukan dan mengimporthtml-webpack-plugin
Boleh menjana kod html secara automatik berdasarkan templat, dan secara automatik merujuk fail css dan jsextract-text-webpack-plugin
Ekstrak gaya yang dirujuk dalam fail js ke dalam fail css secara berasinganDefinePlugin
Konfigurasikan pembolehubah global pada masa penyusunan, yang berguna untuk membenarkan gelagat berbeza antara binaan mod pembangunan dan mod keluaran. HotModuleReplacementPlugin
Kemas kini hangatoptimize-css-assets-webpack-plugin
Pendua css dalam komponen berbeza boleh dinyahduplikasi dengan cepat webpack-bundle-analyzer
Alat analisis fail berkas berkas web yang menukar fail berkas kepada Dipaparkan sebagai peta pokok boleh zum secara interaktif. compression-webpack-plugin
Persekitaran pengeluaran boleh menggunakan gzip untuk memampatkan JS dan CSS happypack
: Mempercepatkan pembinaan kod melalui model berbilang proses clean-wenpack-plugin
Bersihkan setiap pakej Fail yang tidak digunakan di bawah speed-measure-webpack-plugin
: Anda boleh melihat masa pelaksanaan setiap Pemuat dan Pemalam (keseluruhan masa pakej, masa setiap Pemalam dan Pemuat) webpack-bundle-analyzer
: Visualisasikan volum fail keluaran Webpack (komponen perniagaan, modul pihak ketiga yang bergantungfunction MyWebpackPlugin()( }; // prototype 上定义 apply 方法 MyWebpackPlugin.prototype.apply=function(){ // 指定一个事件函数挂载到webpack compiler.pluginCwebpacksEventHook"funcion (compiler)( console. log(“这是一个插件”); // 功能完成调用后webpack提供的回调函数 callback() })
file-loader
url-loader
source-map-loader
. image-loader
babel-loader
css-loader
eslint-loader
: Semak kod JavaScript melalui ESLint服务端设置http缓存头
(cache - kawalan) 即作为splitChunk,因为他们几乎是不变的
延迟加载
: Menggunakan import()方式
, fail yang dimuatkan secara dinamik boleh dibahagikan kepada bahagian bebas untuk mendapatkan chunkhash anda sendiri保持hash值的稳定
: Perubahan dalam proses penyusunan dan interkom fail harus cuba untuk tidak menjejaskan pengiraan cincang fail lain Untuk isu tidak stabil ID digital tambahan yang dijana oleh versi pek web yang lebih rendah, anda boleh menggunakan hashedModuleIdsPlugin untuk menjana berasaskan. pada laluan fail⽽ Mengoptimumkan prestasi bahagian hadapan dengan pek web merujuk kepada mengoptimumkan hasil keluaran pek web supaya hasil pembungkusan akhir berjalan dengan cepat dan cekap dalam penyemak imbas.
压缩代码
: Padamkan kod berlebihan, ulasan, permudahkan penulisan kod, dsb. Anda boleh menggunakan UglifyJsPlugin dan ParallelUglifyPlugin webpack untuk memampatkan fail JS dan menggunakan cssnano (css-loader?minimize) untuk memampatkan css利⽤CDN加速
: Semasa proses binaan, tukar laluan sumber statik yang dirujuk kepada Laluan yang sepadan pada CDN. Anda boleh menggunakan parameter output webpack dan parameter publicPath bagi setiap pemuat untuk mengubah suai laluan sumber Tree Shaking
: Padamkan segmen yang tidak akan pernah dilihat dalam kod. Ini boleh dicapai dengan menambahkan parameter --optimum-minimize apabila memulakan pek web Code Splitting
: Bahagikan kod kepada ketulan mengikut dimensi atau komponen penghalaan, supaya ia boleh dimuatkan atas permintaan dan boleh. digunakan sepenuhnya. Cache penyemak imbas 提取公共第三⽅库
: Pemalam SplitChunksPlugin digunakan untuk mengekstrak modul awam Cache penyemak imbas boleh digunakan untuk menyimpan kod awam ini yang perlu ditukar dengan kerap 摇树优化
生产环境默认开启
代码不运行
不需要的代码
es6模块
静态分析
编译的时候正确判断到底加载了那些模块
Alamat asal : https: //juejin.cn/post/7002839760792190989Atas ialah kandungan terperinci 10 soalan temuduga webpack, berapa banyak yang anda boleh jawab?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!