webpack resolve.alias ProvidePlugin externals

resolve.alias這個配置項相當(dāng)于為文件目錄配置一個別名

比如下面這樣的目錄結(jié)構(gòu)


要在main.js中使用jquery,需要這樣var $=require("./lib/jquery")蹂安。如果lib中的庫很多,而且目錄也很多锐帜,使用的時候就要寫一長串的地址田盈。

使用resolve.alias配置如下


module.exports = {
  entry: 
  {
    main:'./main.js',
  },
  output: {
    path:__dirname+'/dist',
    filename: '[name].js'
  },
  resolve:{
    //配置別名,在項目中可縮減引用路徑
    alias: {
      jquery: "./lib/jquery"
    }
  },
  plugins: [
   
  ]
};

使用的時候缴阎,這樣就可以var $=require("jquery");
配置項中允瞧,key值得配置方式也有很多種,更多的可以看這里

resolve.alias使我們不用頻繁地寫一長串的引用路徑蛮拔,但是使用的時候還是先要require述暂,如果我們懶到require都不想寫呢?ProvidePlugin這個插件就派上用場了建炫。

webpack.config.js

var webpack=require("webpack");
module.exports = {
  entry: 
  {
    main:'./main.js',
  },
  output: {
    path:__dirname+'/dist',
    filename: '[name].js'
  },
  resolve:{
    //配置別名畦韭,在項目中可縮減引用路徑
    alias: {
      jquery: "./lib/jquery"
    }
  },
  plugins: [
    //提供全局的變量,在模塊中使用無需用require引入
    new webpack.ProvidePlugin({
      $: "jquery"
    }),
  ]
};

因為已經(jīng)配置的別名肛跌,所以

new webpack.ProvidePlugin({ $: "jquery" })

就可以艺配,jquery就是我們配置的別名,如果沒有配置別名衍慎,則要這樣寫

new webpack.ProvidePlugin({ $: "./lib/jquery" })

使用的時候

var arr=[1,2,3,4];
$.each(arr,function(){
    console.log(this);
});

沒毛病转唉,但是如果沒有配置ProvidePlugin,也沒有require,這樣寫webpack打包的時候是不會報錯的西饵,瀏覽器運行的時候才知道錯誤酝掩。

不管是使用resolve.alias還是ProvidePlugin,打包的時候眷柔,webpack都會將使用到的庫進(jìn)行打包期虾。打包的方式可以使用CommonsChunkPlugin這個插件再進(jìn)行配置(我以前的文章中有寫這個插件的詳細(xì)用法)。如果我們不想webpack打包某個文件驯嘱,而是直接在頁面使用script標(biāo)簽手動引入镶苞,或者使用CDN資源的時候,externals這個配置項就起作用了鞠评。

webpack.config.js


module.exports = {
  entry: 
  {
    main:'./main.js',
  },
  output: {
    path:__dirname+'/dist',
    filename: '[name].js'
  },
  externals: { $: "window.jQuery" },
  plugins: [

  ]
};

使用

var $ = require("$");
var arr=[1,2,3,4];
$.each(arr,function(){
    console.log(this);
});

一定要記得require,不然和不配置externals沒區(qū)別茂蚓,不想寫可以使用ProvidePlugin

externals: { $: "window.jQuery" },
  plugins: [
    //提供全局的變量,在模塊中使用無需用require引入
    new webpack.ProvidePlugin({
      $: "$"
    })
  ]

打包后



然后頁面上通過script標(biāo)簽手動引入CDN地址或者本地文件地址就行了,需要注意的是引入的順序和依賴關(guān)系聋涨,將webpack打包的文件放到后面引入晾浴。

其實不使用externals也是可以的,我們看一下不使用externals牍白,直接這樣寫

var arr=[1,2,3,4];
$.each(arr,function(){
    console.log(this);
});

打包后

當(dāng)我們手動引入JQ后脊凰,$肯定是有的,沒毛病茂腥。但始終感覺這樣會給自己挖坑狸涌。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市最岗,隨后出現(xiàn)的幾起案子帕胆,更是在濱河造成了極大的恐慌,老刑警劉巖般渡,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件懒豹,死亡現(xiàn)場離奇詭異,居然都是意外死亡诊杆,警方通過查閱死者的電腦和手機歼捐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晨汹,“玉大人豹储,你說我怎么就攤上這事√哉猓” “怎么了剥扣?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長铝穷。 經(jīng)常有香客問我钠怯,道長,這世上最難降的妖魔是什么曙聂? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任晦炊,我火速辦了婚禮,結(jié)果婚禮上宁脊,老公的妹妹穿的比我還像新娘断国。我一直安慰自己,他們只是感情好榆苞,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布稳衬。 她就那樣靜靜地躺著,像睡著了一般坐漏。 火紅的嫁衣襯著肌膚如雪薄疚。 梳的紋絲不亂的頭發(fā)上碧信,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機與錄音街夭,去河邊找鬼砰碴。 笑死,一個胖子當(dāng)著我的面吹牛莱坎,可吹牛的內(nèi)容都是我干的衣式。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼檐什,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了弱卡?” 一聲冷哼從身側(cè)響起乃正,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎婶博,沒想到半個月后瓮具,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡凡人,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年名党,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挠轴。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡传睹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出岸晦,到底是詐尸還是另有隱情欧啤,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布启上,位于F島的核電站邢隧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏冈在。R本人自食惡果不足惜倒慧,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望包券。 院中可真熱鬧纫谅,春花似錦、人聲如沸兴使。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽发魄。三九已至盹牧,卻和暖如春俩垃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背汰寓。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工口柳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人有滑。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓跃闹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親毛好。 傳聞我的和親對象是個殘疾皇子望艺,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361

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

  • GitChat技術(shù)雜談 前言 本文較長,為了節(jié)省你的閱讀時間肌访,在文前列寫作思路如下: 什么是 webpack找默,它要...
    蕭玄辭閱讀 12,698評論 7 110
  • 版權(quán)聲明:本文為博主原創(chuàng)文章蟹演,未經(jīng)博主允許不得轉(zhuǎn)載风钻。 webpack介紹和使用 一、webpack介紹 1酒请、由來 ...
    it筱竹閱讀 11,159評論 0 21
  • 寫在開頭 先說說為什么要寫這篇文章, 最初的原因是組里的小朋友們看了webpack文檔后, 表情都是這樣的: (摘...
    Lefter閱讀 5,297評論 4 31
  • publicPath指定了一個在瀏覽器中被引用的URL地址骡技。 對于使用 和 加載器,當(dāng)文件路徑不同于他們的本地磁盤...
    飛呀飛哥閱讀 1,704評論 0 0
  • 有一句話叫:念念不忘,必有回響苟弛。 這句話喝滞,沒錯,還很有道理膏秫。它包含著人類最執(zhí)著的情感右遭,從未放棄的信念,以及在一開始...
    哇啦小姐閱讀 903評論 4 2