webpack.config.js 如何配置頁面 CDN 引用的外部模塊


如果html頁面引用了 外部 cdn模塊,例如有如下頁面:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>***</title>
    <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet" />
    <link href="https://cdn.bootcdn.net/ajax/libs/bootstrap-switch/3.3.4/css/bootstrap2/bootstrap-switch.min.css" rel="stylesheet" />
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/font-awesome/5.13.0/css/all.min.css" />
</head>
<body>
  ... ...
  
 <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.bundle.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/bootstrap-switch/3.3.4/js/bootstrap-switch.min.js"></script>
</body>
</html>
 
標紅處為cdn引用外部js模塊;
以上js模塊在 webpack.config.js 打包配置文件中就需要被排除掉,webpack.config.js 使用 externals 節配置,形式如下:
 
import webpack from "webpack";
 
module.exports={
  ... ...
  , plugins: [
       ... ...
         // 此處,需要新增一個模塊聲明插件,該插件是webpack的內置插件,直接實例化即可引用,作用是給各頁面導入外部模塊的引用名
          , new webpack.ProvidePlugin({  $: "jquery",  
                                                                           jQuery: "jquery", 
                                                                           'window.jQuery': "jquery",
                                                                           bootstrap: "bootstrap",
                                                                           bootstrapswitch: "BootstrapSwitch"
                                                                        })
        ]
   //  因為已經在頁面做了CDN引用,無需再次編譯,所以需要在此處增加一個 externals 節,將html的js里引用的外部模塊都排除掉,防止這些模塊參與編譯,這里是 key:value 形式的對象,其中 key 是要在頁面中使用的模塊名例如 $("body") 中的 $ 符號,value 是該外部模塊導出的名稱,例如 ./node_modules/@types/jquery/index.d.ts 類型文件中 export = jQuery; 中的 jQuery
         , externals: { 
                              "$": "jQuery",
                              "jquery": "jQuery",
                              "window.jquery": "jQuery",
                              "bootstrap": "Bootstrap",
                              "bootstrapswitch": "BootstrapSwitch"
                            }
}
 
以上html紅色部分外部js模塊cdn引用,在當前頁面的ts文件中不要寫 import 或者 require 引入語句引入該模塊的js內容;因為在webpack.config.js中已經引用過了。
以上就是 webpack.config.js 中如何配置 html 頁面的 cdn 外部模塊引用方式,總之就是一句話,在html中引用的cdn模塊就要在webpack.config.js 中排除掉,不參與編譯即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM