在 uglify / webpack 进行生产之后,每个类的 Class.name 始终为“e”

2024-04-07

我有一个应用程序在开发环境中运行良好,但在生产环境中无法运行,这是由 uglify 引起的(我认为是这样)

我有一个用户构建的数据,我将其保存到文件或 LocalStorage (在这两种情况下都是 json,所以并不重要)。

该结构由 3 种类型的节点构建。我已经在基类中实现了属性(全部继承自一个类):type =this.constructor.name而且它的开发效果很好。当我加载应用程序并读取缓存时,我会遍历 JSON 并使用以下命令重建对象switch (obj.type) case class1.name...等等,它运行良好。

然而,当我为生产而构建时,当我打电话时class1.name or class2.name or class3.name一切都会回归e这使得无法恢复正确的对象......

我不认为这是框架特定的问题,但如果有人需要知道我使用 VueJS 和 Quasar Framework 进行构建。

有任何想法吗?


constructor.name或任何其他功能name在客户端 JavaScript 中永远不应该依赖属性,正是因为在生产环境中必须进行缩小,并且具有有意义名称的函数会成为单字母命名函数。e是用 UglifyJS 缩小的函数的通用名称。这就是丑化的 JS 文件比未缩小的文件占用空间少得多的原因。

如果函数/类名称用于除调试之外的任何用途,则应将它们显式指定为静态属性。自从name在某些引擎中无法重新定义,非标准displayName https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/displayName(也可用于调试)或可以使用任何其他属性名称:

class Foo {
  static get id() { return 'Foo' }
  ...
}

Or:

class Foo {
  ...
}
Foo.id = 'Foo';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 uglify / webpack 进行生产之后,每个类的 Class.name 始终为“e” 的相关文章

随机推荐

  • 如何检查节点到其后代叶子的所有路径的黑色高度?

    Given a 红黑树 我需要写一个高效算法检查对于每个节点 从该节点到后代叶子的所有路径是否包含相同数量的黑色节点 即如果属性为 true 或 false 则算法应返回布尔值 它将返回 RB 树的黑色高度 如果高度为0 则该树是无效的红黑
  • UIButton 的自定义字体标题

    有没有办法为按钮标题添加自定义字体 The UIButton类暴露了一个标题标签 http developer apple com library ios documentation UIKit Reference UIButton Cla
  • 计算余弦相似度 Spark Dataframe

    我正在使用 Spark Scala 来计算 Dataframe 行之间的余弦相似度 数据帧格式如下 root SKU double nullable true Features vector nullable true 下面的数据框示例 S
  • 将字符串分配给字符数组

    我对下面的事情感到有点惊讶 示例1 char s 100 abcd declare and initialize WORKS 示例2 char s 100 declare s hello initalize DOESN T WORK lva
  • Apple 应用内购买 StoreKit 错误

    我正在为书架实现应用程序购买功能 但在购买书籍期间随机出现错误消息 错误信息是 付款请求仅限于通过 Store Kit 的 didReceiveResponse 方法返回的有效产品 我在苹果找到了这个文档http developer app
  • 如何在 tsconfig 中使用单个模块的路径?

    这个问题是后续问题如何使用 tsconfig json 中的路径 https stackoverflow com q 43281741 49942但我想为单个模块执行此操作 我有一个模块 它的实施于src functions foo ts
  • 获取字符串及其子字符串的所有组合[重复]

    这个问题在这里已经有答案了 我见过很多关于获取所有可能的子字符串 即相邻的字符集 的问题 但没有看到关于生成所有可能的字符串 包括其子字符串的组合 的问题 例如 让 x abc 我希望输出是这样的 abc ab ac bc a b c 要点
  • 如何使用唯一值更新表中的列,但不是所有行,不递增[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以使用单个 UPDATE SQL 语句执行多个更新 https stackoverflow com questions 412101 is it possible to perform mult
  • 对其中包含数字的 std::string 进行排序?

    我目前正在按 std string 30 Thanks 您可以创建自定义比较函数来使用std sort 该函数必须检查字符串是否以数值开头 如果是 则将每个字符串的数字部分转换为int使用某种机制 如字符串流 然后比较两个整数值 如果值比较
  • 在 Objective-C 中将 NSString 拆分为数组

    我怎样才能分割字符串 Hello 至 一个 C 数组 H e l l o or Objective C 数组 H e l l o 如果您对 C 数组感到满意chars try const char array Hello UTF8Strin
  • 这是什么样的算法?盒装/背包?

    昨晚我正在开发一个应用程序 遇到了一个特定的问题 我确信可能有一个有效的算法来解决它 有人可以建议吗 Problem TL DR 也许一张图片会有所帮助 http www custom foam inserts com http www c
  • 当池中仍有线程运行时,为什么 executor.isShutdown() 返回 true?

    shutdown 的 Java 文档说 shutdown 无效关闭 启动有序关闭 其中执行先前提交的任务 但不会接受新任务 如果已经关闭 则调用不会产生任何附加效果 该方法不等待之前提交的任务完成执行 使用awaitTermination
  • MySQL 在全表字段中添加前缀

    基本上我只是决定将我的主 ID 切换到 源 字段 因为我将从多个源导入内容 现在我想弄清楚事物从何而来 因此我想为其添加一个前缀 例如portalname formerID 我试过了 UPDATE pics SET source nk so
  • neo4j:单向/双向关系?

    所以我研究了 neo4j 我可能会在即将到来的项目中使用它 因为它的数据模型可能非常适合我的项目 我查看了文档 但我仍然需要这个问题的答案 我可以将关系设置为单向吗 看来 Neo4j 的人很喜欢电影 所以我们继续吧 如果我有这样的图表 Ac
  • window.location 和 $location.path 有什么区别?

    在 MVC angularJS 应用程序中 如何重定向到 MVC 页面 我尝试了以下两个选项 First It doesn t work location path MyPage1 Second It works window locati
  • Visual Studio 服务器资源管理器是否支持自定义数据库提供程序?

    我在一些学习项目中使用了 Server Explorer 和相关工具 通过 Microsoft SQL Server 进行图形数据库开发 这是一次很棒的体验 然而 在我的工作中 我处理 Oracle DB 和 SQLite 我的业余爱好项目
  • VSCode扩展如何获取行最后一个字符的位置

    我正在开发一个 VSCode 插件 现在想要获取一行最后一个字符的位置 现在我想使用 with 方法通过已知的 Position 对象获取它 官方参考在这里 https code visualstudio com api reference
  • docker run -e 不工作,bug?

    根据docs https docs docker com engine reference run env environment variables 此外 操作员可以在中设置任何环境变量 容器通过使用一个或多个 e 标志 甚至覆盖那些 上
  • 如何缓解连接 com.mysql.jdbc.JDBC4Connection@11d08960 触发的连接泄漏,

    我有一个 mqtt 客户端从主题获取订阅请求 然后我把它交给固定大小 50 的线程池 我使用 hikaricp 2 4 2 作为 DB Pooling MySQL 数据库 我目前使用 2 4 2 这是我的设置 HikariConfig co
  • 在 uglify / webpack 进行生产之后,每个类的 Class.name 始终为“e”

    我有一个应用程序在开发环境中运行良好 但在生产环境中无法运行 这是由 uglify 引起的 我认为是这样 我有一个用户构建的数据 我将其保存到文件或 LocalStorage 在这两种情况下都是 json 所以并不重要 该结构由 3 种类型