webpack 之 require.context 用法
最近專案中用到了vue-element-admin當作框架,當中有一個很好的例子:封裝了一個svg的元件,其中就是用到了require.context,然後就出查了相關的介紹,當時也是一頭霧水,最後決定弄明白這個東西。
| 看下webpack官方的介紹:
require.context 點選開啟連結
You can create your own context with the require.context()
function.
It allows you to pass in a directory to search, a flag indicating whether subdirectories should be searched too, and a regular expression to match files against.
webpack parses for require.context()
in the code while building.
The syntax is as follows:
require.context(directory, useSubdirectories = false, regExp = /^\.\//)
Examples:
require.context("./test", false, /\.test\.js$/);
// a context with files from the test directory that can be required with a request endings with `.test.js`.
require.context("../", true, /\.stories\.js$/);
// a context with all files in the parent folder and descending folders ending with `.stories.js
啥意思呢,就是說啊,這玩意的目的啊就是為了省事,通常我們可能會在多個頁面require 同一個元件,數量少還行,多了的話就很蠻煩,維護起來也費勁。這個時候require.context 就排上用場了,一次性引入。
| 首先介紹下入參 :
1. 你要引入檔案的目錄
2.是否要查詢該目錄下的子級目錄
3.匹配要引入的檔案
| 返回的:
1. context.require 返回一個require 函式:
function webpackContext(req) {
return __webpack_require__(webpackContextResolve(req));
}
2. 改函式有三個屬性:resolve 、keys、id
· resolve: 是一個函式,他返回的是被解析模組的id
· keys: 也是一個函式,他返回的是一個數組,該陣列是由所有可能被上下文模組解析的請求物件組成
· id:上下文模組的id
| 用法:
拿該目錄為例
要引入svg下面所有的svg檔案:
在該檔案(icons)目錄下新建一個js檔案index.js 寫如下程式碼:
let requireAll = requireContext => requireContext.keys().map(requireContext)
let req = require.context('./svg', false, /\.svg$/)
requireAll(req)
我們只需要將改index.js 引入,就可以將svg目錄下所有的svg檔案都引入到專案中了。相關推薦
webpack 之 require.context 用法
最近專案中用到了vue-element-admin當作框架,當中有一個很好的例子:封裝了一個svg的元件,其中就是用到了require.context,然後就出查了相關的介紹,當時也是一頭霧水,最後決定弄明白這個東西。 | 看下webpack官方的介紹:requir
用webpack的require.context() 簡化你的程式碼
隨著我們的專案越來越大,平時的常見用操作就會覺得很‘麻煩’了,比如每次要新增新的路由, vuex裡面新增新的module等 { name: 'moduleN', component ModuleN, path: '/moduleN', } 麻煩嗎?談不上吧,畢竟我們之前一直都
webpack中require.context的使用
概述 You can create your own context with the require.context() function. It allows you to pass in a directory to search, a flag indica
vue之require.context
初識require.context require.context是webpack中,用來建立自己的(模組)上下文 webpack會在構建的時候解析程式碼中的require.context() require.context函式接收三個引數: 要搜尋的資料夾目錄
webpack require context 說明
使用 require.context 可以動態引入檔案。參考官方文件,但是文件中的表述不甚清晰,因此我整理了幾種用法和結果。 先新建一個測試目錄,安裝 webpack。目錄結構如下: 使用 require 完全使用變數 require(variable) 程式碼如下: co
Webpack之“多頁面開發”最佳實戰
初始 local warn func ron 列表 大小 turn one 前言:相信之前看過這篇文章,前端構建工具之“Webpack”的朋友,對於Webpack有了一定的了解。那麽今天就跟大家分享下:如何利用webpack,來進行多頁面項目實戰開發
Git 系列之tag的用法---為你的代碼標記版本號
嘗試 自動生成 tag lib 去掉 現在 blank title checkout 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 目錄(?)[-] 本地倉庫操作 遠程倉庫操作 其他 tag 操作 在做app開發的時候經常有版本的概念,比如v1
jquery 之$.fn的用法示例
click 成員函數 turn 靜態 extend pro .proto prototype query $.fn是指jquery的命名空間,加上fn上的方法及屬性,會對jquery實例每一個有效。 若擴展$.fn.abc(),即$.fn.abc()是對jquery擴展一個
webpack之postcss集成
brush style 生產 pre chrom 管理 gin test class 項目 為了 兼容各個瀏覽器,需要加各種 c3前綴,如果手動的加肯定 相對比較麻煩,但是現在有webpack,gulp之類的 工具可以自動給我們加上,可以說效率上加速不少。如果 配置中 做個
webpack 之 resolve.alias(別名)
指定 lang 離開 one class public rom code try module.exports = { entry: ‘./src/main.js‘, output: { path: path.resolve(__dirname,
MySql之ALTER命令用法詳細解讀(轉)
修改表 pre const 命令使用 add ear 修改 blog rain 本文詳細解讀了MySql語法中Alter命令的用法,這是一個用法比較多的語法,而且功能還是很強大的。 USE learning;(自己要提前建好) CREATE TABLE student
Linux基礎之常見命令用法(一)
linux基礎命令入門(一)一、Linux文件目錄結構 在講述之前,先簡短的說說Windows文件結構,打開‘計算機’,看到的一個個的驅動器(盤符,例C盤、D盤等),點開其中任意盤符,看到的是一個個文件或文件夾,繼續打開...,每個盤都有自己的根目錄。若是把其打開過程畫下來,便可得到如下多棵倒樹並列的圖
Spring Boot參考教程(五)Spring Boot配置使用之配置類用法
expr web程序 成功 驗證 pan hub parameter lan fix 4.2. SpringBoot配置使用之配置類使用 Spring Boot的大部分自動配置都可以滿足應用要求,但如果想精確的控制應用,或者想覆蓋自動配置,使用配置類是另一種很好的選擇,強調
C++之const_cast常見用法
href ase lan val das weibo tls ipp ops ls71kr餃瓷幽透蓖茲http://shufang.docin.com/sina_6341788483gclx8t思煙遲謔爸捌http://jz.docin.com/zsoy17419hcqm蛻
Vue之class的用法
隱藏 htm ... cti mob scrip head span 使用總結 Vue中class的使用總結如下: 使用形式v-bind:class 簡寫:class 1.在數組中使用一個class <!DOCTYPE html> <html la
webpack之source map
mil 例子 extc 嘗試 -1 fun document filename 混亂 先來一個webpack小例子,項目結構如下: // greeter.js module.exports = function() { var greet = document.
JavaScript模塊化編程之require.js與sea.js
新的 fin 可能 關鍵字 個數 們的 文件 頁面 停止 個人傾向於require.js AMD 是 RequireJS 在推廣過程中對模塊定義的規範化產出。CMD 是 SeaJS 在推廣過程中對模塊定義的規範化產出。類似的還有 CommonJS Modules/2.
Java函數之Split的用法
java 基礎 最近在寫課程設計,需要用到將輸入的用逗號分割的整數字符串轉換成數組進行排序,所以就發現了這個在我看來簡直超神的函數: stringObj.split(String regex,int limit) 其中StringObj表示需要分割的字符串對象,且使用split方法後該對象不會被改變
webpack之DefinePlugin使用
brush 全局 相關 數據 scrip http 分享圖片 配置 pack DefinePlugin是webpack註入全局變量的插件,通常使用該插件來判別代碼運行的環境變量。在使用該插件需要註意的是,如果在該插件配置了相關的參數,必須要源碼中使用,webpack才會
opensuse軟件安裝之zypper常見用法
pen .com 安裝 use open targe gpo arch www https://www.cnblogs.com/xiangzi888/archive/2012/03/10/2388597.htmlopensuse軟件安裝之zypper常見用法