死亡是一座永恒的灯塔

0%

vue-cli脚手架3.0版本搭建项目,运行时报错

问题描述

vue-cli脚手架3.0版本搭建项目,运行时报错

报错信息

1
[Vue warn] : You are using the runtime-only build of Vue where the template option is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in root instance)

问题出现原因

template 选项不能用,但 vue-router 的例子中都在用,甚至将代码全部替换成例子中的代码依旧无法运行,但在 vue-router 项目里就可以运行。
分别打断点运行,发现两者竟然跑的不是同一段代码!

1
import Vue from 'vue';

同样的 import 语句,却有不一样的结果,
vue-router 中引的是 vue.js,
而在我的项目中引的竟然是 vue.common.js…common…mon…n…

为什么会引 vue.common.js,from ‘vue’ 不该引的是 vue.js 么?这就要引入另一个知识点:package.json。
package.json 中的 main 属性决定了,当项目被引入时,输出的是哪个文件,而 vue 的 package.json 中的 main 指向的是 dist/vue.common.js。

解决办法

import Vue from ‘vue/dist/vue’;

参考文献:https://segmentfault.com/a/1190000006435886

坚持技术分享,您的支持将鼓励我继续创作!