webpack成神之路(四)

  1. 現(xiàn)在我們有些基層模塊依賴于一些全局變量,比如jquery.我們開始怎么設置全局變量.以jquery為例晓淀;
  • 首先我們安裝jquery;cnpm i jquery;
  • 我們在a.js中引入jquery并打印潭辈,啟動服務鸯屿。在控制臺可以看到jquery引入成功了;
    a.js
import $ from 'jquery';
console.log($)
image.png
  • 但是我們console.log(window.$)把敢,卻得到了undefined;
  • 為了把jquery掛載到window下寄摆,我們需要expose-loader
  • loader可以分為

pre 前面執(zhí)行的loader
normal 普通loader
內(nèi)聯(lián)的loader
post 后置loader

  • 現(xiàn)在我們在a.js中
import $ from 'expose-loader?$!jquery';  // 暴露jquery 為 $ 
console.log($)
console.log(window.$)
  • 現(xiàn)在控制臺打印成功了


    image.png
  • 現(xiàn)在我們不用內(nèi)聯(lián),配置到webpack中修赞;


    image.png
  • a.js中直接import $ from 'jquery'婶恼;

  • 控制臺同樣打印了window.jquery;

*再來我們不想再要用的js中引入jquery .我們想在每個模塊中注入$對象桑阶,直接使用;

  • 我們需要在webpack.config.js 中引入webpack插件勾邦;
    我們引入
const Webpack = require('webpack');
module.exports = {
  plugins: [ 
        new Webpack.ProvidePlugin({
            $: 'jquery'
        })
  ]
}

  • 然后我們在a.js中直接打印與window. 蚣录,啟動服務可以看到控制臺直接打印了jquery;

    image.png

  • 此時打印出來了眷篇,window.是undefined.如果想要window.$也存在萎河,一樣像方面在模塊中配置expose-loader就行了

  • 現(xiàn)在說一種情況,比如我們在index.html中通過script引入了jquery的cdn蕉饼。然后我們在a.js中又import $ from 'jquery'; 此時打包后悔發(fā)現(xiàn)
    jquery被打包到了打包后的js中虐杯,此時我們是不希望jquery被打包的。

  • 我們可以在webpack.config.js中配置externals選項昧港;

    externals:{
        jquery: '$'
    },

image.png
  • 此時我們打包就可以看到打包后的文件要比剛才小了擎椰。說明jquery沒有被打包進去
  1. 打包圖片方式有幾種

js中引入圖片
css中引入比如背景圖
html 中img 直接引入

  1. js中;


    image.png
  • 啟動服務可以看到 找不到圖片


    image.png
  • 此時'./img/1.jpg'就相當于是字符串慨飘,所以找不到确憨。
  • 那我就用import引入圖片,并且需要file-loader解析(file-loader默認會在內(nèi)部生成一張圖片到build目錄下瓤的,并且把生成圖片的名字返回)休弃;
  • 安裝 cnpm i file-loader --save-dev
  • 然后在wepback.config.js中配置


    image.png
  • 然后在a.js中創(chuàng)建圖片
import pic  from './img/1.jpg';
let img = new Image();
img.src = pic;
document.body.appendChild(img)
image.png
  • 繼續(xù)把a.js清空,我們通過css背景圖中使用圈膏;我們在index.less中引入背景圖片


    image.png
  • 這里css-loader直接回轉(zhuǎn)換url為對應的圖片地址


    image.png
  • 我們在html中直接引入


    image.png
  • 我們打包后發(fā)現(xiàn)圖片找不到塔猾,


    image.png
  • 這里我們需要用到一個插件來處理 安裝 cnpm i html-withimg-loader -D

  • webpack.config.js

           {
                test: /\.html$/,
                use: 'html-withimg-loader'
            },
image.png
  • 然后把img css js中圖片都加上,打包看效果稽坤,可以看到都成功了


    image.png
  • 現(xiàn)在我們發(fā)現(xiàn)如果有些圖片比較小丈甸,不想發(fā)起請求獲取圖片,直接通過base64打包到代碼中尿褪,我們就需要一個url-loader 了

  • 安裝 cnpm i url-loader -D

  • webpack.config.js中的file-loader換為url-loader


    image.png
  • 然后我們打包 可以看到圖片被打包成base64 了

image.png
  • 然后我們試試吧大小寫小一些


    image.png
  • 再打包睦擂,可以看到圖片沒有被打包成base64


    image.png
  1. 接下來我們把css img等在打包后進行分類,我們可以在'url-loader'下添加outputPath: 'img/',并打包


    image.png
  • 可以看到圖片被打包到了img目錄下
  • 我們要把css 也打包到css目錄下也類似的在插件MiniCssExtractPlugin下配置filename就可以


    image.png
  1. 我如果打包后的文件要放到cdn上杖玲,所有的資源都指向同一個域名顿仇,我們就可以在webpack.config.js中配置 publicPath;
  • 比如


    image.png
  • 打包后的文件都會自動加上publicPath了


    image.png

下一篇webpack成神之路(五)http://www.reibang.com/p/086e97e114a2

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市摆马,隨后出現(xiàn)的幾起案子臼闻,更是在濱河造成了極大的恐慌,老刑警劉巖囤采,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件述呐,死亡現(xiàn)場離奇詭異,居然都是意外死亡蕉毯,警方通過查閱死者的電腦和手機乓搬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門思犁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缤谎,你說我怎么就攤上這事抒倚『肿牛” “怎么了坷澡?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長含蓉。 經(jīng)常有香客問我频敛,道長,這世上最難降的妖魔是什么馅扣? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任斟赚,我火速辦了婚禮,結(jié)果婚禮上差油,老公的妹妹穿的比我還像新娘拗军。我一直安慰自己,他們只是感情好蓄喇,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布发侵。 她就那樣靜靜地躺著,像睡著了一般妆偏。 火紅的嫁衣襯著肌膚如雪刃鳄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天钱骂,我揣著相機與錄音叔锐,去河邊找鬼。 笑死见秽,一個胖子當著我的面吹牛愉烙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播解取,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼步责,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了肮蛹?” 一聲冷哼從身側(cè)響起勺择,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎伦忠,沒想到半個月后省核,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡昆码,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年气忠,在試婚紗的時候發(fā)現(xiàn)自己被綠了邻储。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡旧噪,死狀恐怖吨娜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情淘钟,我是刑警寧澤宦赠,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站米母,受9級特大地震影響勾扭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜铁瞒,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一妙色、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧慧耍,春花似錦身辨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至师枣,卻和暖如春怪瓶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背践美。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工洗贰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人陨倡。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓敛滋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親兴革。 傳聞我的和親對象是個殘疾皇子绎晃,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 版權(quán)聲明:本文為博主原創(chuàng)文章擎勘,未經(jīng)博主允許不得轉(zhuǎn)載咱揍。 webpack介紹和使用 一、webpack介紹 1棚饵、由來 ...
    it筱竹閱讀 11,028評論 0 21
  • 目錄第1章 webpack簡介 11.1 webpack是什么煤裙? 11.2 官網(wǎng)地址 21.3 為什么使用 web...
    lemonzoey閱讀 1,731評論 0 1
  • 構(gòu)建工具逐漸成為前端工程必備的工具掩完,Grunt、Gulp硼砰、Fis且蓬、Webpack等等,譯者有幸使用過Fis题翰、Gul...
    陳堅生閱讀 5,990評論 4 64
  • GitChat技術(shù)雜談 前言 本文較長恶阴,為了節(jié)省你的閱讀時間,在文前列寫作思路如下: 什么是 webpack遍愿,它要...
    蕭玄辭閱讀 12,674評論 7 110
  • 前言 趁工作之余玩了下webpack存淫,現(xiàn)在都出到4.8版本了,不得不感嘆前端技術(shù)版本更新真的很快沼填!如果你還不會we...
    js_冠榮閱讀 3,864評論 3 28