Удалить / установить по умолчанию _unspecified_ process.env реквизиты в webpack / rollup / terser? - PullRequest
0 голосов
/ 05 марта 2020

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

Возможно ли что-то подобное? Существуют ли какие-либо стандартные плагины, которые могут это сделать?

(Контекст: я работаю над библиотекой, которая в идеале будет совместима со многими сборщиками, и я хотел бы предоставить несколько детализированных времени компиляции регуляторы, но все же получают выгоду от удаления кода, устанавливая (или нет) одно всеобъемлющее определение для управления другими.)

...