在有關(guān)于vue的學習中我們會遇到很多的問題,今天小編就來和大家說說有關(guān)于“vue-cli cdn方式怎引入vue模塊?”這個問題的吧!下面是整理的相關(guān)內(nèi)容,希望對大家有所幫助。
一、選擇vue的cdn
首先我們引入的vue文件必須是有瀏覽器版本的,至少需要包含vue的運行時的源碼,就是我們說的vue.runtime.min.js這個文件,這個文件的話大家可以在網(wǎng)上搜索下載。
那么說的到這里就有很多人問了運行時源碼和完整版有什么不同?
我們在運行時源碼缺少編譯器而完整版的卻有編譯器,因為vue-loader 編譯后已經(jīng)編譯了?template
?,所以就不需要再次編譯,這也就意味著我們運行時源碼還要小,更多的相關(guān)內(nèi)容我們可以在vue官方文檔中查閱!而且我們要是使用bootcdn運行時體積會更小。
二、從哪里引入?
我們通過在新建一個vue-cli3項目,在項目中的?public/index.html
?的?head
?元素中引入相關(guān)的cdn,代碼如下:
<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" />
<title>vue-app</title>
<script
src="https://cdn.bootcss.com/vue/2.6.10/vue.runtime.min.js"
crossorigin="anonymous"
></script>
<script
src="https://cdn.bootcss.com/vue-router/3.1.3/vue-router.min.js"
crossorigin="anonymous"
></script>
</head>
在代碼中我們在?script
?元素中設(shè)置了?crossorigin
?屬性,為了避免跨域的警告,更多的相關(guān)內(nèi)容我們可以在CORS settings attributes。而且在這個項目中?vue
?和?vue-router
? 都使用 ?cdn
?來引入了,減少了很多體積。
三、是否需要刪除 import vue語句?
首先對于這個問題我們是不需要進行刪除的,我們只需要在webpack中設(shè)置不打包vue在使用cdn引入模塊就可以了,當然如果有小伙伴想要進行一個刪除也是可以的,但是呢一般是不建議,因為如果你在安裝我們的項目的時候使用的是eslint的編輯器的話它是會直接報錯的,就類似? Vue undefined
?這樣的一些錯誤,但是我們是可以用? window.Vue
?來調(diào)用,但是呢這邊是不建議,因為我們?nèi)绻@樣的話會出現(xiàn)丟失語法提醒。如果大家是是安裝了 typescript 那么我們是還要寫額外的全局類型等等其他的相關(guān)內(nèi)容,所以小編這邊建議不刪除。
那么就會有人問了,我們要怎么忽略已經(jīng)用cdn引入的模塊在打包的時候?對于這個的話我們可以在vue.config.js文件中添加下面這些代碼:
module.exports = {
configureWebpack: {
externals: {
vue: 'Vue',
'vue-router': 'VueRouter'
}
}
}
在代碼中的屬性名是我們引入的模塊名,值的話是需要替換的變量,這個值必須和cdn中提供的一樣,這個作用的話就是使用外部引入的擴展,這樣的話我們在build的時候這個模塊,我們在可以webpack外部拓展中查閱相關(guān)內(nèi)容。
注意:對于源代碼我們只是改了 “public/index.html”這個文件和配置了 vue.config.js,沒有修改其他代碼。
四、打包測試
我們在不使用 cdn 的情況打包的 dist 文件夾(注釋掉 vue.config.js 添加的代碼就可測試):
$ vue-cli-service build
dist\js\chunk-vendors.c79ff8b4.js 114.63 KiB 40.43 KiB
dist\js\app.dfdf8bae.js 4.71 KiB 2.07 KiB
dist\js\chunk-7a70a114.6f60ed21.js 0.55 KiB 0.37 KiB
dist\css\app.7fe16c18.css 0.49 KiB 0.25 KiB
dist\css\chunk-7a70a114.98f4dffc.css 0.28 KiB 0.17 KiB
而且在這個文件中的 venders 有114KB,它是包含了 webpack + vue + vur-router。 使用 cdn 的情況打包的 dist 文件夾:
yarn run v1.17.3
DONE Compiled successfully in 6367ms
File Size Gzipped
dist\js\chunk-vendors.7876bfa1.js 24.21 KiB 8.86 KiB
dist\js\app.7fb99721.js 4.78 KiB 2.10 KiB
dist\js\chunk-7a70a114.759e91f3.js 0.55 KiB 0.38 KiB
dist\css\app.7fe16c18.css 0.49 KiB 0.25 KiB
dist\css\chunk-7a70a114.98f4dffc.css 0.28 KiB 0.17 KiB
然而這個時候 venders 只有24KB,它里面包含的只有 webpack 的相關(guān)代碼了。
總結(jié):
以上就是有關(guān)于“vue-cli cdn方式怎引入vue模塊?”這個問題的相關(guān),當然如果你有更好的方法也可以和大家一起分享討論,更多的相關(guān)與vue的知識內(nèi)容我們都可以在W3cschool中學習和了解。
相關(guān)資料:
vue官方文檔鏈接:https://cn.vuejs.org/v2/guide/installation.html#%E5%AF%B9%E4%B8%8D%E5%90%8C%E6%9E%84%E5%BB%BA%E7%89%88%E6%9C%AC%E7%9A%84%E8%A7%A3%E9%87%8A
bootcdn鏈接:https://www.bootcdn.cn/
CORS setting attributes 鏈接:https://developer.mozilla.org/zh-CN/docs/Web/HTML/Attributes/crossorigin
webpack外部擴展:https://webpack.docschina.org/configuration/externals/#externals