angular - 在 Angular 8 中避免使用 Mangle 类名称
问题描述
我在 Angular 8 中有一个单页应用程序。在这个应用程序中,我在 typescript 类中使用构造函数名称来执行一些操作。在开发中一切正常。
class User {
GetClassName() {
return this.constructor.name;
}
// returns "User"
}
但是,当我在生产模式下构建时:
npm run ng build -- --configuration=prod
Angular 执行了很多优化,包括 Uglify 类名
class User {
GetClassName() {
return this.constructor.name;
}
// returns "t"
}
所以我的构造函数名称是 Now t 而不是 user。如何配置 Angular Build 以避免 Uglify 某些类名或所有类名?
似乎是什么时候可以替换 mangle 选项,但我不会在我的 nodemodule 中这样做,但更喜欢使用构建时给出的自定义配置文件。
有人成功做到了吗?
谢谢大家
解决方案
Angular cli builder 支持 NG_BUILD_MANGLE、NG_BUILD_MINIFY、NG_BUILD_BEAUTIFY 节点环境参数(在版本 8 中检查)。
您可以在运行 npm 脚本时通过以下方式设置它们: env NG_BUILD_MANGLE=false NG_BUILD_MINIFY=false NG_BUILD_BEAUTIFY=true ng build --prod
这将导致未缩小的输出,但仍将应用摇树和其他优化(与仅关闭优化相比)。
推荐阅读
- php - 使用 HTMLPurifier (Munge.php) 对提交的链接进行内部重定向
- r - 使用应用于多个列的多个函数在 data.table 中生成多个新列
- jquery - 当使用 jquery 添加/删除类时,Nth-Child / Nth-Of-Type 不能与 CSS 类一起使用?
- python-3.x - 在python中绘制圆时检测用于半径的测量距离
- kotlin - Kotlin - 确保收集操作在开始下一个之前完成
- macos - 安装 MacOs Mojave 的 Tex 包后,kableExtra 的功能不再起作用(Rmarkdown)
- javascript - 如何在 React js 中禁用当前和过去一周的日期?
- swift - 使用 GIF 的动画启动屏幕
- javascript - 我正在尝试创建一个包含 3 个 JavaScript 对象的网页
- error-handling - 哪种错误处理模式更好:一个 try/catch 围绕大代码块,许多 try/catch 围绕较小的代码块?