【问题标题】:Upgrade Fabric project from 1.6.3 to 3.6.x将 Fabric 项目从 1.6.3 升级到 3.6.x
【发布时间】:2020-07-18 13:49:14
【问题描述】:

我在我的一个画布项目中使用 fabric.js 已经有很长时间了。目前,我的项目是基于 1.6.3 版本的 fabric。

现在,由于它对动画的限制,并且在最近的版本中已经解决了同样的问题。我想升级到 3.6.x 但在这样做的同时,我意识到它有大量的折旧和升级。我的项目目前有大约 20k 行代码。 手动执行此操作当然不是一个可行的选择。

谁能提出更好的解决方案?可能是一个迁移脚本或类似的东西来拯救自己。

【问题讨论】:

    标签: javascript version fabricjs upgrade


    【解决方案1】:

    据我所知,没有升级/迁移脚本可以自动执行让您的代码在最新版本的 Fabric.js 下运行的过程。不过,为了让您入门,这里有一些提示。

    从 v1.6.3 升级到 v2.x

    Fabric.js 版本 v2.x 可能是主要版本中最大的突破性变化。除了已删除的几种方法外,为了适应新的图像裁剪功能,处理图像高度和宽度的方式也发生了重大变化。以下指南概述了这些更改,还包含一些示例代码以帮助反序列化 pre-v2.0 JSON 字符串。

    从 v2.4.0 开始,添加了clipPath 支持,允许您使用另一个 Fabric 对象剪辑对象或画布。 clipTo 方法是以前的方法,现在被标记为折旧,所以如果你的项目使用clipTo,你应该真正开始进行这种转换。请参阅这个由 4 部分组成的指南,以更好地了解新功能。

    从 v2.x 升级到 v3.x

    Fabric.js v3.x 的重大更改少于 v2.x。移除了对 Node 4 和 6 的支持,现在在某些情况下需要对象缓存而不是可选的,但这次升级更多的是关于新功能而不是大的变化。

    请参阅http://fabricjs.com/changelog,了解每个版本的详细更改列表。

    从 v3.x 升级到 v4.x

    我也包含了这一部分,因为尽管此时 v4.x 分支仍处于测试阶段,但有很多重大更改主要涉及删除旧方法。如果您现在进行这些更改,您仍然可以在 v3.x 分支上运行您的项目,直到 v4.x 退出测试版。

    一个很大的变化是clipTo 方法终于被删除了,所以如果你还在使用clipTo,你需要转而使用clipPath

    v4.x 中最大的改进是新的自定义控件界面。使用此系统,您将能够自定义每个控件的功能,添加图标,甚至为您的对象添加新控件。有关新系统的帮助,请参阅以下演示。

    请参阅 https://github.com/fabricjs/fabric.js/releases 了解当前 v4.x 分支中的更改和已删除方法的列表。

    玩得开心!

    【讨论】:

    • 感谢您的精彩回答!使用 v1.6.0 通过canvas.toObject() 创建的 JSON 并将其迁移到通过canvas.loadFromJSON() 正确加载到 v4.6.0 怎么样?如果某些东西尚不存在,我正在考虑编写一个可以执行此操作的迁移器工具。这可能需要我与fabricjs变得更加亲密哈哈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2011-10-28
    • 1970-01-01
    • 2018-06-27
    • 2011-02-02
    • 1970-01-01
    相关资源
    最近更新 更多