我有一个应用程序在开发环境中运行良好,但在生产环境中无法运行,这是由 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(使用前将#替换为@)