Как в typescript исключить из сборки кусок кода?

Рейтинг: 0Ответов: 0Опубликовано: 22.08.2023

Я разрабатываю модули на 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 и упоминание её в финальной сборке.

Что посоветуете?

Ответы

Ответов пока нет.