當我們加載頁面時,需要將我們所需要的一些依賴加載到當前會話中然后再開始執行,如果我們首屏,模塊比較多是,需要等待的時間會比較長,而且。瀏覽器內存最多執行四十個進程,需要等到加載完前面的才能執行后面的代碼,如果我們采用cdn的方式來引入一些第三方資源,就可以緩解我們服務器的壓力,原理是將我們的壓力分給其他服務器點。
配置
首頁引入這些cdn,index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link rel="icon" href="<%= BASE_URL %>favicon.ico"> <script src="https://cdn.bootcss.com/vue/2.5.2/vue.min.js"></script> <script src="https://cdn.bootcss.com/vue-router/3.0.1/vue-router.min.js"></script> <title>mytest</title> </head> <body> <noscript> <strong>We're sorry but mytest doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> </noscript> <div id="app"></div> <!-- built files will be auto injected --> </body> </html>
然后在vue.config.js添加webpack的externals屬性即可
module.exports = { baseUrl:'./', configureWebpack: { //使用cdn,不想讓webpack打包進去 externals: { "vue": "Vue", "vue-router": "VueRouter" } }, chainWebpack: config => { // 移除 prefetch 插件 config.plugins.delete('prefetch') } }
效果
按照官方文檔的解釋,如果我們想引用一個庫,但是又不想讓webpack打包,並且又不影響我們在程序中以CMD、AMD或者window/global全局等方式進行使用,那就可以通過配置externals。這個功能主要是用在創建一個庫的時候用的