Задать вопрос
@its2easyy

Возможно ли минифицировать имена публичных методов внутренних классов через Terser?

Есть два класса, первый используется во втором, второй экспортируется.
//file1.js
export default class Foo{
  publicVarFoo = 1;
  #privateVarFoo = 2;
  publicMethodFoo(){}
  #privateMethodFoo(){}
}

//file2.js, entrypoint
import Foo from "./file1.js"

export default class Bar{
  constructor(){
    this.foo = new Foo();
  }
  publicVarBar = 1;
  #privateVarBar = 2;
  publicMethodBar(){
    this.foo.publicMethodFoo();
    console.log(this.foo.publicVarFoo );
  }
  #privateMethodBar(){}
}

Единственная точка входа это класс Bar, класс Foo из внешнего кода получить невозможно. При этом terser оставляет неизменными имена publicVarFoo, publicMethodFoo, publicVarBar, publicMethodBar, а хотелось бы чтобы оставались только публичные переменные и методы одного класса, который доступен для внешнего кода, то есть publicVarBar и publicMethodBar.
Я нашёл вариант с настройкой
terserOptions: {
  mangle: {
    properties: {
       regex: /^_/,
    }
  },
 }

но для неё нужно переименовывать все переменные и фукнции. Возможно есть другой способ?
  • Вопрос задан
  • 59 просмотров
Подписаться 2 Сложный 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
26 дек. 2024, в 15:04
3000 руб./за проект
26 дек. 2024, в 14:50
2000 руб./за проект
26 дек. 2024, в 14:40
15000 руб./за проект