Как в typescript исключить из сборки кусок кода?
Я разрабатываю модули на typescript. К примеру у меня есть два модуля:
- my-module-1
- my-module-2
в my-module-1 имеется такой код:
import { AnyLibrary } from "anylibrary";
export class MyApplication {
private readonly _lib: AnyLibrary;
constructor() {
this._lib = new AnyLibrary();
}
update() {
this._lib.doSomething();
}
}
my-module-2 в зависимостях использует my-module-1
Эти два модуля опубликованы в npm репозитории.
Я создаю проект my-project и подключаю зависимость my-module-2. Теперь при сборки my-project я хочу сделать так, чтобы AnyLibrary из my-module-1 не попала в билд и код с работой с ней соответственно. Это вообще возможно?
Зачем это нужно
Нужно для того, чтобы уменьшить вес финального билда, а библиотека AnyLibrary используется только для разработки, к примеру для вывода на экран debug информации.
Раньше я писал на javascript и использовал webpack для сборки проекта. Там я использовал loader: webpack-preprocessor-loader
, что позволяло использовать директивы препроцессора и я мог добавлять проверки вида: //#!if //#!else //#!endif
и при сборке менять переменную для develop и для production.
Но тут кроме того, что нет поддержки директив препроцессора, так ещё и отдельными модулями, не думаю что я смогу как-то передать при сборке my-project используемому модулю my-module-2 параметр о том, что сборка для production и поэтому убери AnyLibrary и упоминание её в финальной сборке.
Что посоветуете?