Vue的构建版本

使用Vue过程中遇到的坑:关于构建版本。

平时在使用Vue时,一般都是搭建vue-cli,今天在写一个小demo的时候,使用 npm 直接安装的vue,浏览器报错如下图:

image.png

这个报错大致说的是:

[vue警告]:在模板编译器不可用的情况下,您使用的是仅运行时构建的Vue。
要么预编译模板为呈现函数,要么使用编译器包含的构建.

在翻阅官网之后,官网给出的解释:
Vue包含不同版本的[运行时 + 编译器] and [只包含运行时],如果你需要在客户端编译模板 (比如传入一个字符串给 template 选项,或挂载到一个元素上并以其 DOM 内部的 HTML 作为模板),就将需要加上编译器,即完整版:

// 需要编译器
new Vue({
  template: '<div>{{ hi }}</div>'
})

// 不需要编译器
new Vue({
  render (h) {
    return h('div', this.hi)
  }
})

当使用 vue-loader 或 vueify 的时候,*.vue 文件内部的模板会在构建时预编译成 JavaScript。你在最终打好的包里实际上是不需要编译器的,所以只用运行时版本即可。
因为运行时版本相比完整版体积要小大约 30%,所以应该尽可能使用这个版本。如果你仍然希望使用完整版,则需要在打包工具里配置一个别名:
webpack.config.js

module.exports = {
  // ...
  resolve: {
    alias: {
      'vue$': 'vue/dist/vue.esm.js' // 用 webpack 1 时需用 'vue/dist/vue.common.js'
    }
  }
}

问题解决。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。