javascript - 如何解决 Vue 3 自定义渲染器错误

标签 javascript vue.js vuejs3 custom-renderer vite

我正在尝试使用 Vue 3 和 Vite 构建自定义渲染器。渲染器正在其 original repo 中工作(克隆该存储库、 npm installnpm run dev ),但是当我发布该渲染器并安装在另一个项目上时失败。
要重新创建,请执行以下任一操作:

  • Clone, install, and run this repo , 或
  • 创建 Vue 3 项目,npm install mvp-renderer , 并导入 { createApp }来自 mvp-renderer而不是 vue .

  • 工作自定义渲染器添加类 custom-renderer到每个 DOM 元素;在损坏的版本中,没有任何内容呈现给 DOM,当 mount 出现时,我看到以下错误函数被称为:
    [Vue warn]: resolveComponent can only be used in render() or setup().
    
    关于如何修复的任何想法?

    最佳答案

    多亏了 Ferry Kranenburg 的建议,我才找到了解决办法——看起来问题是 Vite 添加了一些额外的功能。
    我添加了一个新的 build:renderer命令到 the renderer当我现在从 NPM 安装时它可以正常工作。该命令只运行常规的 Typescript 编译,而不是执行 Vite 的完整构建过程。
    要查看它的实际效果,您可以 clone the implementation从上面,运行 npm install mvp-renderer@latest ,然后运行 ​​npm run dev看到它工作没有任何错误。
    看起来在 Vite 中对渲染器进行原型(prototype)设计工作正常,但如果您想将其捆绑用于生产,则需要自行编译渲染器。再次感谢渡轮!

    关于javascript - 如何解决 Vue 3 自定义渲染器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68807596/

    相关文章:

    javascript - 内部匿名函数如何具有外部函数的作用域?

    html - <b-form-select-option> 在 Bootstrap Vue 中不起作用

    html - Tailwind CSS 在我的元素中没有发挥作用,我尝试学习这个新的 CSS 框架,我按照文档中的说明安装了所有内容,但它不起作用

    javascript - Vue 3 : How to forward all emitted events to a parent component?

    vue.js - `nuxt.js` vue3的替代品?

    javascript - 为什么不能将变量设置为 <number>.toString(),但可以在返回值上调用 toString()?

    javascript - 防止 iFrame 重定向到 src url 以外的 url

    java - Web 应用程序上的网络质量指示器

    vue.js - 在 'default' 中找不到导出 'vue'(作为 Vue 导入)

    vue.js - 将其标签插入为原始 html 后如何渲染组件? View 3