如何在生产环境中 minify/uglify 使用 Angular 构建 webworker 包

How to minify/uglify webworker bundles built with Angular in production

我需要使用 web-worker 进行繁重的计算,Angular 提供了一种使用 CLI 命令在应用程序中生成 web-worker 的便捷方法 ng generate web-worker app

问题是,当使用 ng build --prod 在生产中构建时,生成的 web-worker 包似乎没有得到很好的优化。我仍然可以在文件中找到整个变量、class 或方法名称,并且部分代码在包中很容易阅读,这让我很困惑。

有没有办法更好地缩小该代码?

此致,

编辑: 举个例子,这里是app.worker.ts的内容:

/// <reference lib="webworker" />
class MyClassName{
  myMethodName(){}
}
const myVariableName = new MyClassName()
postMessage(myVariableName.myMethodName());

这可以在使用 ng build --prod

生成的 worker.js 文件中找到
const myVariableName=new class{myMethodName(){}};postMessage(myVariableName.myMethodName())}});

代码经过优化,但仍然易于阅读。

编辑 2:错字

编辑您的 angular.json 并设置 optimization:true

https://angular.io/guide/workspace-config#build-configs

经过一些研究,似乎有意将 webworker 文件(如 service-worker 文件)缩小。

可以手动缩小为 explained here