Webpack中導入vue和普通網頁中導入vue的區別
1、 普通網頁導入vue方式
<script></script>
2、 Webpack導入vue方式
Import Vue form ‘vue’
但是:這種方式如果想使用最全的vue功能 的時候會報錯誤
原因:因為在webpack中使用這種方式導入的vue構造函數,功能不完整,只提供了runtime-only的方式,並沒有像網頁中那樣的使用方式
//回顧包的查找規則
1、在項目的根目錄中有沒有node-module文件夾
2、在node-modules中根據包名,找對應的vue文件夾
3、在vue的文件夾中找到一個就做package.json的包配置文件
4、在package.json文件中,查找一個main屬性【main屬性指定了這個包在被加載的時候,的入口文件】
注意看 main所指向的就是Import Vue form ‘vue’ 這句話所導入的vue文件,並不是我們想要的vue.js完整的包 而是runtime.common.js
runtime-only -> 代碼中,不可以有任何的template,使用模板的時候就會報錯誤
runtime-compile->代碼中,可以有template,因為有compile可以編譯template
在使用vue-cli
腳手架構建項目時,會遇到一個選項Vue build
(vue構建),有兩個選項,Runtime + Compiler
和Runtime-only
,以下為有道翻譯直譯
Runtime + Compiler: recommended for most users
運行時+編譯器:推薦給大多數用戶--有道翻譯
Runtime-only: about 6KB lighter min+gzip, but templates (or any Vue-specificHTML) are ONLY allowed in .vue files - render functions are required elsewhere
僅限運行時:大約6KB的輕量級min+gzip,但是模板(或任何特定於vue的html)只允許在.vue文件中使用——其他地方需要呈現函數 以下為有道翻譯直譯
解決報錯問題
解決辦法:
第一種:
將這個路徑直接手動改了,改成我們要用的vue.js完成的文件路徑地址
第二種:
在main.js中將Import Vue form ‘vue’改成Import Vue form ‘相對node-module下面完成的vue文件地址
第三種:
詳細參考文章