Size: a a a

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

2020 December 10

D

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

D

Dmitrii in Webpack — русскоговорящее сообщество
хорошего дня:)
источник

A

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

EE

Evgeny Evgeny in Webpack — русскоговорящее сообщество
Всем привет
Хочу разделить настройки babel для dev и prod версии, но NODE_ENV всегда определяется как 'development', подскажите, в чем может быть причина?
Заранее благодарю
источник

EE

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

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Evgeny Evgeny
Всем привет
Хочу разделить настройки babel для dev и prod версии, но NODE_ENV всегда определяется как 'development', подскажите, в чем может быть причина?
Заранее благодарю
а как вы задаете переменную окружения?
источник

D

Dmitrii in Webpack — русскоговорящее сообщество
const isDev = process.env.NODE_ENV === 'development'
const isProd = !isDev

я вот таким образом задал, вроде работает
источник

A

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

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Dmitrii
const isDev = process.env.NODE_ENV === 'development'
const isProd = !isDev

я вот таким образом задал, вроде работает
здесь только его чтение
источник

EE

Evgeny Evgeny in Webpack — русскоговорящее сообщество
Может быть я как-то неправильно использую .env?
У меня есть подключенные .env файлов отдельно для prod и dev, использую библиотеку Dotenv
я пробовал в этих файлах писать NODE_ENV, не помогало
а так у меня в config webpack.dev.js/webpack.prod.js указан mode, я всегда думал, что он и проставляет эту переменную
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Evgeny Evgeny
Может быть я как-то неправильно использую .env?
У меня есть подключенные .env файлов отдельно для prod и dev, использую библиотеку Dotenv
я пробовал в этих файлах писать NODE_ENV, не помогало
а так у меня в config webpack.dev.js/webpack.prod.js указан mode, я всегда думал, что он и проставляет эту переменную
я тоже так думал когда-то, это распространенное заблуждение.
В доке написано что по-мимо прочего mode:
Sets process.env.NODE_ENV on DefinePlugin to value development
Ключевое здесь DefinePlugin
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
DefinePlugin - это такой плагин с помощью которого вебпаку можно указать какую переменную на какой литерал заменить.
Т.е. при сборке когда вебпак находит process.env.NODE_ENV он заменяет его на строчку 'development' или 'production' в зависимости от того какой mode
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
однако, как вы уже наверное поняли, на сам конфиг вебпака это не распророняется (потому что он не собирается вебпаком)
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
если вы хотите видеть изменение process.env.NODE_ENV переменной в кофниге вебпака вым надо эту переменную поменять до его запуска.
В лине это делается так
export NODE_ENV=production && webpack ...
в винде по другому
Чтобы сделать универсально надо поставить пакет из npm cross-env
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
тогда получится типа такого в package.json
scripts: {
 build: cross-env NODE_ENV=production webpack --mode production,
 dev: cross-env NODE_ENV=development webpack --mode development,
}
источник

EE

Evgeny Evgeny in Webpack — русскоговорящее сообщество
спасибо большое, теперь понимание сложилось окончательно
про cross-env я знал, хотел обойтись без них))
источник

A

Andrew in Webpack — русскоговорящее сообщество
Denis Barvitskiy
Почитайте про кэширование
Спасибо, если можно подробней указать куда копать? В webpack 5 вроде как под капотом кеширования должно быть (по крайней мере у них так описано). Сейчас при первой компиляции занимает 11220 ms, при последующих пересборках в дев режиме (с опцией watch, но только при изменении scss) занимает - 3000-4000 ms, при изменении js - 150-250 ms.
источник

SS

S S in Webpack — русскоговорящее сообщество
Andrew
Спасибо, если можно подробней указать куда копать? В webpack 5 вроде как под капотом кеширования должно быть (по крайней мере у них так описано). Сейчас при первой компиляции занимает 11220 ms, при последующих пересборках в дев режиме (с опцией watch, но только при изменении scss) занимает - 3000-4000 ms, при изменении js - 150-250 ms.
Можно еще этот плагин попробовать для увеличения скорости сборки

https://webpack.js.org/loaders/thread-loader/
источник

A

Andrew in Webpack — русскоговорящее сообщество
спасибо, бьет ошибки
Как раз в таком сочетании https://github.com/webpack/webpack/issues/6792#issuecomment-605554841
А в github thread-loader решения не нашел(
источник

A

Andrew in Webpack — русскоговорящее сообщество
А если ставить [  MiniCssExtractPlugin.loader, "thread-loader", "css-loader", "postcss-loader" ] в таком порядке, бьет другую)
источник