Size: a a a

Webpack — русскоговорящее сообщество

2021 June 14

A

Alex CherryTea in Webpack — русскоговорящее сообщество
хз, идея в том чтобы оставить это в коде либы. Если вобще без плагина сборка упадет?
источник

Д

Данил in Webpack — русскоговорящее сообщество
изначально было без плагина и не работало.

Вебпак не должен ввообще распозновать подобный код как deadcode и удалять его?

if(proeccess.env === ‘prod’) {}
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
ну конкретно ваш пример вернет truly значение
источник

Д

Данил in Webpack — русскоговорящее сообщество
пофиксил, но суть тут в том, что по идеи вебпак должен железно понимать, что если проц энв не тот - код можно удалять
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Все равно у вас странно написано. Обычно это выглядит как
if (proeccess.env.NODE_ENV === ‘production’) {

}
источник

Д

Данил in Webpack — русскоговорящее сообщество
Это был псевдо код
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
когда вебпак испортирует этот модуль он применяет def плагин который делает замену proeccess.env.NODE_ENV на значение указаное в его конфиге. Например 'production'.
Получится
if ('production' === ‘production’) {

}
(делает это помоему тупо через replaceAll)

Далее, если у вас стоит mode: production в вебпаке то после сборки запуститься terser который
на стадии compute  
'production' === ‘production’ заменит на true а 'production' === 'development' на false
а на стадии dead code elimination удалит if (false) со всем содерержимым
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
единственное что - я не знаю применяется ли definePlugin ко всем внешним зависимостям (то что вам нужно) или только к сорс файлам проекта
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
давайте почитаем доку посмотирм сорсы
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
я не вижу по коду плагина чтобы он как-то исключал из обработки файлы из нодмодулей
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
как минимум if ('production' === 'production') должно получатся
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
остальное уже от настроек терсера зависит
источник

Д

Данил in Webpack — русскоговорящее сообщество
Ну короче, ниче так просто и из коробки не выйдет, гуглил, челы например делают 2 разных билд сборки с прод и дев энв переменные и тп штуки
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
почему не выходит?
источник

Д

Данил in Webpack — русскоговорящее сообщество
окей, какое ваше предложение?
источник

Д

Данил in Webpack — русскоговорящее сообщество
изначально без definePlugin - код не работает
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
как именно он не работает?
источник

Д

Данил in Webpack — русскоговорящее сообщество
proeccess.env.NODE_ENV - undefined
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
заменяет на undefined?
источник