【问题标题】:Is that possible to use Vue 3 compiled/build into Vue 2 project?是否可以将 Vue 3 编译/构建到 Vue 2 项目中?
【发布时间】:2021-08-17 12:22:34
【问题描述】:

我正在尝试使用 Vue 3 打字稿创建新项目,但我想将此项目用于我现有的 Vue 2,为什么要使用它?因为我需要对网站进行全面改造,但是要改造这个需要时间,而且你知道产品经理希望这些东西早点发布????????? 所以我不能通过 rewrite 完全改造,它会是每个阶段

我的方法是在 Vue 3 上制作组件,然后构建它以在 Vue 3 项目上定义

这可能吗?或者有什么办法可以解决这个问题?

【问题讨论】:

  • 您可以使它们尽可能地与这两个框架兼容(可能与 vue-demi 一起),或者在 Vue 2 中使用 Vue 3 子应用程序。
  • Vue 3 子应用是什么意思? , 这是否意味着我创建了 Vue demi 项目或者我在 vie 3 项目或 vue 3 项目中添加了 Vue demi 库?
  • 一个嵌套的 Vue 3 应用程序在 Vue 2 中实例化。这包括使用 Vue 3 Web 组件,请参阅 v3.vuejs.org/guide/web-components.html 。 vue-demi 意味着您需要坚持使用 Vue 2 并使用稍后切换到 Vue 3 时几乎不需要更改的 API。
  • 这是否意味着我需要部署或构建 Vue 3 组件?然后构建它并像 CDN 一样提供服务?知道这意味着什么
  • 您需要构建 V3 组合。无论你是使用 CDN,还是私有 NPM 包,或者在 V2 中获取它们都无关紧要,它们只是此时需要以某种方式导入的另一个 JS 库。

标签: javascript vue.js vuejs2


【解决方案1】:

不,你不能在 Vue 2 项目中使用 Vue 3 组件,但你可以做相反的事情。使用 Vue 3 migration build 在 Vue 3 项目中启用 Vue 2 组件。此构建的设计目的是逐步将您的 Vue 2 项目迁移到新版本,这听起来像是您正在尝试做的事情。

如果在 Vue 3 项目中,在安装对 Vue 2 有对等依赖的 Vue 2 NPM 包时(例如vue-select),你会遇到如下安装错误:

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: vue3-with-vue-select@0.1.0
npm ERR! Found: vue@3.2.3
npm ERR! node_modules/vue
npm ERR!   vue@"^3.0.4" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer vue@"2.x" from vue-select@3.12.2
npm ERR! node_modules/vue-select
npm ERR!   vue-select@"*" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

要解决错误,请使用--force 标志:

npm install --force --save vue-select

【讨论】:

  • 我在修复过程中收到的这么多警告来自 vue-select.org,因为使用了该组件的大量插槽,有时在修复警告期间,所有警告都消失了,似乎没有任何警告警告或错误,但在我检查本地主机后,浏览器上的项目空白,当我检查这么多错误时,并尝试修复但仍然遇到一些问题@tony19
  • @Harmnot 这是一个带有 vue-select 的 Vue 3 演示,使用迁移构建:stackblitz.com/edit/vue3-with-vue-select?file=src%2FApp.vue
  • 关于警告,您可能指的是 NPM 安装期间的 Vue 2 对等依赖警告。这些警告可以忽略,因为我们知道对等依赖与 Vue 3 迁移项目无关。使用--force 标志使安装成功。
  • 我确实是这样做的,但你知道,它有 100 多个手动完成,我还需要重建他们在 node_modules 上的库,我需要升级许多组件,而且许多组件也没有开发没有了,
  • 手动做什么?目标不就是将您的项目完全迁移到 Vue 3 吗?
猜你喜欢
  • 2021-09-15
  • 1970-01-01
  • 2020-12-30
  • 2021-07-17
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
  • 2019-02-05
  • 2020-01-06
相关资源
最近更新 更多