Все популярные упаковщики / минификаторы позволяют заменять значения во время компиляции, такие как process.env.ENABLE_ASSERTS
, с целью удаления кода путем явного перечисления замен в конфигурации, но если имя не указано в списке, оно остается как есть. Вместо этого я хотел бы указать значение по умолчанию в коде JS, чтобы зачистка кода все еще могла происходить даже для неуказанных свойств (например, const ENABLE_ASSERTS = process.env.ENABLE_ASSERTS ?? process.env.NODE_ENV === 'development';
). В этом примере ENABLE_ASSERTS
переопределяет значение по умолчанию, но даже если оно не переопределено, я бы предпочел использовать NODE_ENV
вместо проверки значения во время выполнения. Очевидно, что упаковщики допускают замену любого имени, этот режим должен быть ограничен, скажем, свойствами process.env
.
Возможно ли что-то подобное? Существуют ли какие-либо стандартные плагины, которые могут это сделать?
(Контекст: я работаю над библиотекой, которая в идеале будет совместима со многими сборщиками, и я хотел бы предоставить несколько детализированных времени компиляции регуляторы, но все же получают выгоду от удаления кода, устанавливая (или нет) одно всеобъемлющее определение для управления другими.)