在bud-vue和Sage 10中遇到一些非常奇怪的问题。
我刚刚将项目上的Acron更新为3.1
版本。
当运行yarn dev
来构建资产时,vue组件不会加载。当我在控制台上查看时,我收到了Vue:的警告
Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".
奇怪的是,这是使用最新版本的bud-vue
,也就是6.11.0
。
在bud-vue
的文档中,它们规定默认设置运行时编译:
"该扩展已预先配置为支持Vue 3单文件组件(仅限运行时)">
我的所有其他节点包都是最新的,并设置为与bud-vue 相匹配的最新版本
package.json
"devDependencies": {
"@roots/bud": "6.11.0",
"@roots/bud-babel": "^6.11.0",
"@roots/bud-tailwindcss": "6.11.0",
"@roots/bud-vue": "^6.11.0",
"@roots/sage": "6.11.0"
},
我尝试了以下方法来解决这个问题,首先手动声明bud-vue使用模板编译:
app.vue.set('runtimeOnly', true)
并试图为vue设置一个别名,以使用正确的运行时bundler(这在bud-vue的早期版本中是需要的):
.alias('vue', app.path('@node_modules/vue/dist/vue.esm-bundler.js'))
尽管似乎什么都不起作用。配置选项几乎没有反映。。。。
如果有人有任何见解,或者遇到了这个问题并解决了它,我真的很感激一些帮助和指导。
这已经解决:
对于bud-vue,默认值是runtimeOnly设置为true。这捆绑了Vue 3的"仅运行时"版本(即无模板编译器)。
要包含完整的捆绑包,请使用:
app.vue.set('runtimeOnly', false)
不需要别名-您可以将其从bud.config.js
中删除。
在bud-vue的文档中,他们规定运行时编译是默认设置的:
"该扩展已预先配置为支持Vue 3单文件组件(仅限运行时)。">
这里存在混淆,因为Vue生成的警告指的是"运行时编译",这与"仅运行时"非常相似。
请记住在更改这些设置(yarn run bud clean
或yarn dev --force
)后清理您的构建。
链接到实际答案:
https://discourse.roots.io/t/getting-vue-to-work-with-sage-10-bud-vue-runtime-runtime-compilation-is-not-supported/25044