vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > Vue compiler和runtime模式报错

Vue2中compiler和runtime模式报错template compiler is not available

作者:瞎搞一通

本文主要介绍了Vue2中compiler和runtime模式报错template compiler is not available,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

错误描述

[Vue warn]: 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.

main.js代码如下

import Layout from '@/layout/index'
new Vue({
  el: '#app',
  router,
  store,
  // render: h => h(App),
  //vue 模版编译开启
  components: { Layout },
  template: '<Layout/>'
})

原因

vue有两种形式的代码 compiler(模板)模式和 runtime (运行时)模式,vue模块的package.json的main字段默认为runtime模式, 指向了"dist/vue.runtime.common.js"位置。
在我的main.js文件中,初始化vue使用的是compiler模式,所以出现上面的错误信息。

解决办法

1、main.js初始化vue改为runtime模式

new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App),
})

2、修改vue.config.js配置

增加 runtimeCompiler: true,
runtimeCompiler:是否使用包含运行时编译器的 Vue 构建版本。默认值false,设置为 true 后你就可以在 Vue 组件中使用 template 选项了,但是这会让你的应用额外增加 10kb 左右。

webpack配置文件里增加 ‘vue$’: ‘vue/dist/vue.esm.js’,
import Vue from ‘vue’ 这行代码被解析为 import Vue from ‘vue/dist/vue.esm.js’,直接指定了文件的位置,没有使用main字段默认的文件位置。

module.exports = {
    runtimeCompiler: true,
    configureWebpack: {
    name: name,
    resolve: {
      alias: {
        'vue$': 'vue/dist/vue.esm.js', //内部为正则表达式  vue结尾的
        '@': resolve('src')
      }
    },
  }
}

到此这篇关于Vue2中compiler和runtime模式报错template compiler is not available的文章就介绍到这了,更多相关Vue compiler和runtime模式报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文