不少人應該像我同樣,對於webpack
的require.context
都是隻知其一;不知其二吧。網上不少關於require.context
的使用案例,可是我沒找到能夠幫助我理解這個知識點的,因而也決定本身來探索一下,下面以網上流行的svg
圖標方案爲例說明。對了,本文的重點是require.context
,並不會去解釋svg symbol
方案svg-sprite-loader
。javascript
src/icons/index.js
java
const context = require.context("./svg", true, /\.svg$/) context.keys().map(context)
main.js
webpack
import '@/icons'
webpack.base.config.js
web
{ test: /\.svg$/, loader: "svg-sprite-loader", include: [resolve("src/icons")], options: { symbolId: "icon-[name]" } }, { test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, loader: "url-loader", exclude: [resolve("src/icons")], options: { limit: 10000, name: utils.assetsPath("img/[name].[hash:7].[ext]") } },
不少人跟我同樣,一開始只想說,爲何這樣就能夠,why???svg
要知道是什麼,就上打印大法。ui
const context = require.context("./svg", true, /\.svg$/) // 看看你是何方神聖 console.log(context) context.keys().map(context)
下面就真的以一張圖進行解釋,有問題的歡迎留言交流呀!url
首發連接spa