vue 报错 You are using the runtime-only build of Vue where the template compiler is not available.

问题描述

学习vue-router官方教程,'起步’章节,<router-view>无效果,控制台报warn:

You are using the runtime-only build of Vue where the template compiler is not available.Either pre-compiler the templates into render functions, or use the compiler-included build.

项目大体情况

  • 环境如下:

    • webpack版本:4.40.2
    • vue-cli版本:3.11.0
  • 使用vue-cli vue create xxx命令创建vue项目,采取默认配置

  • 使用npm install vue-router安装vue-router

  • 主要代码如下:

import Vue from 'vue'
import App from './App.vue'

// 0. 导入vue-router
import VueRouter from 'vue-router'
Vue.use(VueRouter)

Vue.config.productionTip = false

// 1. 定义路由组件
const Foo = {template:'<div>Foo</div>'}
const Bar = {template:'<div>Bar</div>'}
const User = {template:'<div>user {
  
  { $route.params.id }}
Vue出现 `You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.` 错误时,可按照以下两种主要思路解决: ### 预编译模板为渲染函数 可以直接使用 `render` 函数来定义组件,避免使用 `template` 选项。例如: ```vue <template> <!-- 这里不使用 template 内容 --> </template> <script> export default { render(h) { return h('div', '这是一个使用 render 函数的组件') } } </script> ``` 若使用单文件组件(.vue 文件),Vue CLI 会在构建过程中自动处理模板编译。但如果手动配置 Webpack 等构建工具,需要确保配置了 `vue-loader` 来处理 `.vue` 文件。以下是一个简单的 Webpack 配置示例: ```javascript const VueLoaderPlugin = require('vue-loader/lib/plugin') module.exports = { module: { rules: [ { test: /\.vue$/, loader: 'vue-loader' } ] }, plugins: [ new VueLoaderPlugin() ] } ``` ### 使用包含编译器的构建版本 在项目中使用包含编译器的 Vue 构建版本。如果使用 CDN 引入 Vue,可以将引入的链接从 `vue.runtime.min.js` 改为 `vue.min.js`: ```html <!-- 之前的 runtime-only 版本 --> <!-- <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.runtime.min.js"></script> --> <!-- 改为包含编译器的版本 --> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js"></script> ``` 若使用 npm 安装的 Vue,需要在项目的 `webpack.config.js` 或 `vue.config.js` 中配置别名。在 `vue.config.js` 中的配置示例如下: ```javascript module.exports = { configureWebpack: { resolve: { alias: { 'vue$': 'vue/dist/vue.esm.js' // 使用包含编译器的版本 } } } } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值