webpack+vue
匹配的报这个模板错误是怎么回事?
package.json
"vue": "^2.0.1",
"vue-cli": "^2.4.0",
"vue-html-loader": "^1.2.3",
"vue-loader": "^9.5.1",
"vue-style-loader": "^1.0.0",
vue.common.js:2569 [Vue warn]: Failed to mount component: template or render function not defined
Google找到了问题所在是:Vue2.0有两种
Build
的方式:the standalone build and the runtime-only build(独立构建和运行时构建),可以知道:独立构建包括编译和支持template
选项。但也要依赖于浏览器的API,所以不能用于服务端渲染。运行时构建不包括模板编译,并且不支持template
选项,只能使用render
选项。重点来了,默认情况下,NPM包导出的是
runtime-only build
.因此为了要使用独立构建,在webpack配置中需要添加下面的代码:于是乎,按照官方文档的说法,在webpack配置中加入上面那段代码之后,就不报错了,不过我的页面还是一片空白:<
实在没办法继续Google,然后在Github看到了这个issue里面的LinusBorg的评论,在index.js文件这里,只能使用下列两种情况:
使用template属性例如:
template: '<div><modal> ... </modal></div>
使用render() function
因此,通过测试,可以直接使用
template: '<div><modal> ... </modal></div>
来加载对应的内容,组件的话,则需使用render function
来注册子组件。修改之后的index.js文件应该是这样:
你试试。
本人愚见(错误请指出):特别注意一点在入口js文件这里,是无法使用
components
属性来注册子组件的,而在组件中则可以使用components
属性来注册子组件。如果在你的App.vue中,使用components
属性来注册子组件的话是可以注册成功的。这是vue2.0才会出现的问题,如果是1.0是不会出现这个问题的。