1. 程式人生 > >Webpack引入jquery及其外掛的幾種方法

Webpack引入jquery及其外掛的幾種方法

1. 直接引入[最佳方案]

直接引入的關鍵在於輸出的配置,這裡以var為例,如下:

 output : {
      filename : '[name].js',
       //  devServer不可配置為絕對路徑
       //publicPath: "http://localhost:8080/dist/",
       publicPath: "/dist/",
       path : build,
       //  umd包含了對amd、commonjs、var等多種規範的支援
       //   關鍵在於這裡  
       libraryTarget : 'var'  
   },  
//  其他配置略
resolve: { //extensions: ['', '.js', '.es6', '.vue'], alias: { // 也可以不寫 jquery: 'jquery/dist/jquery.min.js', } }

這樣,在編譯程式碼時,webpack會自動將jquery打進程式碼,現在就可以引入程式碼了

// 可以直接引入jquery
import $ from 'jquery'
// 因為是commonjs規範,所以會按順序載入,引用成功,如果是output為amd,則必須在requirejs中配置shim,否則失敗
import 'jquery-ui'

2. ProvidePlugin[難以引入外掛]

在webpack中新增外掛ProvidePlugin
plugins: [
    new webpack.ProvidePlugin({
      $: "jquery",
      jQuery: "jquery"
    }),
  ]
//  $函式會自動新增到當前模組的上下文,無需顯示宣告
問題是依舊沒有全域性的$函式,所以匯入外掛依舊會失敗,並且如果有eslint這樣的preLoads,呼叫語句也難以通過語法校驗(因為沒有宣告$就直接使用),僅這一點,對於我這樣的程式碼處女座就難以接受。

3. expose-loader[推薦使用]

不需要任何其他的外掛配合,只要將下面的程式碼新增到所有的loader之前
 {
    test: require.resolve('jquery'),
    loader: 'expose?jQuery!expose?$'
 }
引用時改為如下方式
import $ from 'expose?$!jquery'
import 'jquery-ui' //外掛可用   
 imports-loader、script-loader同樣可達到此效果,配置與功能都非常相似,在此不一一說明。

4. 包裝jquery[推薦使用]

此方法只依賴於自己,完全不需要任何其他外掛與載入器,建立jquery的包裝物件jquery-vendor.js
import $ from 'jquery'
window.$ = $
window.jQuery = $
export default $
以後引用jquery時指向jquery-vendor.js
import $ from '../assets/jquery-vendor.js'
import 'jquery-ui'
//  此時UI的方法全部可用,如果需要引用bootstrap,可參照此方法
為了呼叫方便,可在webpack配置檔案中建立jquery-vendor.js的別名

alias: {
    jquery        : 'src/assets/jquery-vendor.js' //    將其指向jquery-vendor.js所在位置
}   

可參考我的專案中的配置檔案。

相關推薦

Webpack引入jquery及其外掛方法

1. 直接引入[最佳方案] 直接引入的關鍵在於輸出的配置,這裡以var為例,如下: output : { filename : '[name].js', // devS

js物件的深拷貝及其方法

深拷貝和淺拷貝是javascript中一個比較複雜的問題,也是面試官最喜歡問的問題之一,通過這個為可以看出是否入門,深拷貝和淺拷貝也是初學者經常犯錯一個點。 簡單來說深拷貝是拷貝儲存在棧中的物件,而淺拷貝是從記憶體中拷貝,這就涉及到資料存放位置了,總所周知,資料大體可以分為兩種資料型別,一種是基

wordpress中載入JQuery庫的方法

Jquery是繼prototype之後又一個優秀的Javascrīpt框架。它是輕量級的js庫(壓縮後只有21k) ,它相容CSS3,還相容各種瀏覽器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使使用者能更方便地處理HTML documents、eve

HTML中引入CSS檔案的方法

 概況來說有以下四種:        1.行內式:也稱內聯式,在標記的style屬性中設定CSS樣式。這種方式沒有體現出CSS的優勢;        2.嵌入式:將CSS樣式集中寫在網頁的<he

webpack引入第三方js去除嚴格模式的方法

1. babel5 babel: { options: { blacklist: ["useStrict"], // ... }, // ... } 2. babel6 略過模組: { pres

Vue中引入jquery方法 vue-cli webpack 引入jquery

div 分享圖片 ons run imp vue-cli http query npm 在vue-cli 生成的工程中引入了jquery(模板用的webpack) 首先在package.json裏的dependencies加入"jquery" : "^2.2.3",然後np

Spring 獲取 request 的方法及其線程安全性分析

就是 base p地址 sco 便是 情況 C4D cookie tex 本文將介紹在Spring MVC開發的Web系統中,獲取request對象的幾種方法,並討論其線程安全性。 一、概述 在使用Spring MVC開發Web系統時,經常需要在處理請求時使用request

如何在HTML不同的頁面中,共用頭部與尾部?HTML的引入方法

asp語言和PHP語言 的使用  首先製作一個頭部檔案head.asp,或者一個底部檔案foot.asp。如主頁是index.asp,呼叫頭部程式碼是在index.asp檔案程式碼的開始位置(第一個標記後面,<head>標記前面)增加如下程式碼: &

js中陣列遍歷的方法及其區別

第一種最常用的:for迴圈  for(j = 0; j < arr.length; j++) { }  優化版for迴圈   for(j = 0,len=arr.length; j < len; j++) {

jQuery擷取字串的方法

1.取字尾 var fileDir = $("#file").val(); var suffix = fileDir.substr(fileDir.lastIndexOf(".")); //suffix 就是字尾; 2.函式:Join() //該函式是使用您選擇的分隔符將一個數組合併為一個字串;var

JS jQuery顯示隱藏div的方法

<div id="demo">AAA</div> JS隱藏和顯示div的方式有兩種: 方式1:隱藏後釋放佔用的頁面空間 通過設定display屬性可以使div隱藏後釋放佔用的頁面空間. style="display: none;" document

jquery easyui tab載入內容的方法

jQuery Easyui 的tabs外掛有兩種方式載入某個tab(標籤頁)上的內容:“href遠端請求”和“content本地內容”,本文就兩種方式的優缺點進行簡單分析和思考。 兩者特點: href方式載入資料的特點: 被載入的頁面只有body元素內部的內容才會被載入

Eclipse 安裝 Maven 外掛方法

 昨天直接在機器上配置了Maven環境,今天順便把Eclipse等IDE環境配置好。     安裝IDE Plugins的方法有很多。其一:線上安裝,通過Help-->Install New Software的方式,輸入HTTP地址來安裝,簡單易操作,但是也優缺點,就是

MyEclipse10安裝SVN外掛方法

方法一:直接解壓 找到MyEclipse10 在安裝目錄下的dropins資料夾,如:D:\MyEclipse\MyEclipse 10\dropins; 在dropins資料夾下,新建一個svn資料夾; 解壓svn外掛後將features檔案和plug

HTML 頁面載入 Flash 外掛方法

<span style="font-family:Microsoft YaHei;"><div style="margin-top:-30px;margin-left:-120px;"> <object classid="clsid:d27cdb6e-ae6d-11cf-

jquery實現登入加密的方法以及cookie存放加密/解密

1、base64加密   在頁面中引入base64.js檔案,呼叫方法為: <!DOCTYPE HTML><html><head><meta charset="utf-8"><title>base64加密</title><s

jQuery頁面載入初始化的方法

在新的公司裡工作,最近一直在做關於js和jQuery的開發,下面三種是最常見的jquery頁面載入初始化的方法 第一種,去年實習時的公司用的是這樣 $(function(){ //定義區

Java遍歷List的方法及其效能比較

參考: StackOverflow 上有人給出了上面幾種遍歷方式。【yasi】個人覺得方法2,即 for (E element : list) 方式最優雅簡潔,其餘幾種方法不夠“現代化”。 StackOverflow 上指出,方法2在效能上和方法3(顯式地對迭代器

jquery 新增節點的方法介紹

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>jQuery插入,複製、替換和刪除節點&l

jquery mobile切換頁面的方法

有幾種方法來切換頁面 1.  $.mobile.changePage ('../path/to/page.html'); 2.  $.mobile.changePage ('other/page.html', 'fade', false, false); 可以設定頁面切換