国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

詳解webpack自定義loader初探

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:08:54
文檔

詳解webpack自定義loader初探

詳解webpack自定義loader初探:最近負(fù)責(zé)的Weex項(xiàng)目涉及到一些構(gòu)建上的問(wèn)題,需要通過(guò)自定義webpack的loader去實(shí)現(xiàn),于是學(xué)習(xí)了一下這方面的知識(shí),寫(xiě)一篇文章做個(gè)總結(jié),以免遺忘。 webpack想必前端圈的人都知道了,大多數(shù)人也都或多或少的用過(guò)。簡(jiǎn)單的說(shuō)就是它能夠加載資源文件,并對(duì)這些文
推薦度:
導(dǎo)讀詳解webpack自定義loader初探:最近負(fù)責(zé)的Weex項(xiàng)目涉及到一些構(gòu)建上的問(wèn)題,需要通過(guò)自定義webpack的loader去實(shí)現(xiàn),于是學(xué)習(xí)了一下這方面的知識(shí),寫(xiě)一篇文章做個(gè)總結(jié),以免遺忘。 webpack想必前端圈的人都知道了,大多數(shù)人也都或多或少的用過(guò)。簡(jiǎn)單的說(shuō)就是它能夠加載資源文件,并對(duì)這些文

最近負(fù)責(zé)的Weex項(xiàng)目涉及到一些構(gòu)建上的問(wèn)題,需要通過(guò)自定義webpack的loader去實(shí)現(xiàn),于是學(xué)習(xí)了一下這方面的知識(shí),寫(xiě)一篇文章做個(gè)總結(jié),以免遺忘。

webpack想必前端圈的人都知道了,大多數(shù)人也都或多或少的用過(guò)。簡(jiǎn)單的說(shuō)就是它能夠加載資源文件,并對(duì)這些文件進(jìn)行一些處理,諸如編譯、壓縮等,最終一起打包到指定的文件中。可以說(shuō),它作為一個(gè)打包工具,在前端工程化浪潮中,起到了中流砥柱的作用。

那webpack其中非常重要的一環(huán)就是,能夠?qū)虞d的資源文件,進(jìn)行一些處理。比如把less、sass文件編譯成css文件,負(fù)責(zé)這個(gè)處理過(guò)程的,就是webpack的loader。

什么是loader

我們都知道webpack作為當(dāng)下最火的一個(gè)前端構(gòu)建工具,具有很多很實(shí)用的功能,loader就是其中之一。說(shuō)的通俗一點(diǎn),loader就是用于對(duì)模塊的源碼進(jìn)行轉(zhuǎn)換。對(duì)于做Android的同學(xué),大家可以把它想象成gradle中的transform task。

loader怎么用

在平時(shí)的開(kāi)發(fā)過(guò)程中,loader的使用也是非常常見(jiàn)的,我們可以在工程的webpack.config.js中定義:

module: {
 rules: [
 {
 test: /\.css$/,
 use: [
 'vue-style-loader',
 'css-loader'
 ],
 }, {
 test: /\.vue$/,
 loader: 'vue-loader',
 options: {
 loaders: {
 }
 // other vue-loader options go here
 }
 },
 {
 test: /\.(png|jpg|gif|svg)$/,
 loader: 'file-loader',
 options: {
 name: '[name].[ext]?[hash]'
 }
 }
 ]
}

可以看到,對(duì)于css文件,我們使用css-loader,對(duì)于vue文件,我們使用vue-loader,對(duì)于圖片文件,我們使用file-loader。這些loader會(huì)將對(duì)應(yīng)的文件進(jìn)行轉(zhuǎn)換,構(gòu)建出最終的產(chǎn)物。

如何自定義loader

有了上面的經(jīng)驗(yàn),我們?cè)撊绾巫远x一個(gè)loader呢?其實(shí)也是非常簡(jiǎn)單的。

首先我們創(chuàng)建一個(gè)js文件,就取名叫test-loader吧。

var loaderUtils = require('loader-utils');

module.exports = function(source) {
 console.log("start process code...");

 var options = loaderUtils.getOptions(this) || {};
 if(options !== {}) {
 var replaceMap = options["replaceMap"];
 for(var key in replaceMap) {
 console.log(source);
 source = source.replace(key, replaceMap[key]);
 console.log(source);
 }
 }

 return source;
};

這就是全部的代碼了,其實(shí)一個(gè)loader內(nèi)部就是一個(gè)node模塊,代碼的編寫(xiě)就和平時(shí)寫(xiě)node一樣就ok了。

test-loader的邏輯就是獲取到設(shè)置的option,并且做一個(gè)文本的替換。

假設(shè)我們還有2個(gè)js文件,分別是test.js和index.js

test.js

const str = 'test is loaded';
module.exports = str;

index.js

const test = require('./src/test');
console.log(test);

然后我們?cè)趙ebpack.config.js中加入我們自己的test-loader。

{
 test: /\.js$/,
 loader: 'test-loader',
 exclude: /node_modules/,
 options: {
 replaceMap: {
 "loaded": "yeah"
 }
 }
}

其中options中,我們將“l(fā)oaded”字符串替換成“yeah”。

但是我們的loader并沒(méi)有上傳到npm中,所以我們還需要在webpack.config.js中加入下面這段代碼:

resolveLoader: {
 modules: [path.join(__dirname, './src/loaders'), 'node_modules']
}

用于加載本地loader。

這樣我們最終構(gòu)建出來(lái)的產(chǎn)物中,所有的“l(fā)oaded”字符串就會(huì)被替換成“yeah”了。

小結(jié)

這篇文章非常淺顯,主要就是講了一下loader的使用方式,其實(shí)我們熟知的很多l(xiāng)oader都是這么做的,只不過(guò)是業(yè)務(wù)邏輯上的復(fù)雜程度不同而已,大家也可以自己試試看。

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

詳解webpack自定義loader初探

詳解webpack自定義loader初探:最近負(fù)責(zé)的Weex項(xiàng)目涉及到一些構(gòu)建上的問(wèn)題,需要通過(guò)自定義webpack的loader去實(shí)現(xiàn),于是學(xué)習(xí)了一下這方面的知識(shí),寫(xiě)一篇文章做個(gè)總結(jié),以免遺忘。 webpack想必前端圈的人都知道了,大多數(shù)人也都或多或少的用過(guò)。簡(jiǎn)單的說(shuō)就是它能夠加載資源文件,并對(duì)這些文
推薦度:
標(biāo)簽: 自定義 loader webpack
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專(zhuān)題
Top
主站蜘蛛池模板: 国产欧美日韩一区二区三区在线 | 中文字幕日韩有码 | 国产第一页在线播放 | 亚洲欧美日韩精品永久在线 | 91欧美激情一区二区三区成人 | 久久99久久精品国产99热 | 久久伊人网视频 | 精品国产欧美一区二区三区成人 | 国产毛片一区二区三区精品 | 国产一级α片 | 国产精品高清一区二区三区 | 成人三级在线观看 | 亚洲天堂一区二区三区 | 日韩视频高清 | 欧美日韩中文字幕 | 国产精品久久久久久永久牛牛 | 久久久网久久久久合久久久久 | 日本乱人伦a综艺网站 | 欧美激情在线一区二区三区 | 欧美日韩国产在线播放 | 在线观看欧美国产 | 在线播放国产色视频在线 | 暧暧视频免费 | 欧美高清视频在线观看 | 亚洲天堂一区二区三区 | 亚洲三级一区 | 欧美阿v高清资源在线 | 亚洲精品乱码久久久久 | 91中文字幕在线 | 欧美色图在线观看 | 国产不卡的一区二区三区四区 | 制服一区 | 亚洲最新偷拍 | 国产精品亚洲一区二区三区久久 | 久久久国产99久久国产久 | 国产精品不卡在线 | 日韩精品欧美高清区 | 久久精品国产一区二区三区 | 精品一区二区三区五区六区 | 精品国产免费一区二区三区五区 | 99久久国产综合精品成人影院 |