Что произойдет при добавлении Lodash в sharing

Ответ

Добавление Lodash в sharing (например, в Webpack через splitChunks) может привести к дублированию библиотеки, если она уже используется в других частях приложения.

Пример настройки Webpack:

optimization: {
  splitChunks: {
    cacheGroups: {
      lodash: {
        test: /[\/]node_modules[\/]lodash[\/]/,
        name: 'lodash',
        chunks: 'all',
        enforce: true
      }
    }
  }
}

Что произойдет:

  • Lodash будет вынесен в отдельный чанк (lodash.js).
  • Браузер загрузит его один раз и закеширует, даже если он используется в нескольких точках входа.
  • Если другая версия Lodash уже есть в проекте, возможны конфликты. Убедитесь, что везде используется одна мажорная версия.

Рекомендация:
Проверьте package.json на дублирование Lodash (npm ls lodash). Если версии разные — обновите зависимости.

Ответ 18+ 🔞

Слушай, а вот эта твоя затея с Lodash в sharing — это, конечно, огонь, если сделать правильно. Но если накосячить, то будет пиздец, а не оптимизация. Представь: ты такой весь красавчик, настроил splitChunks в Webpack'е, выносишь библиотеку в отдельный чанк, а потом бац — и у тебя в проекте сидит две версии Lodash, как два кота в одном мешке, и они друг друга ненавидят.

Вот смотри, как это примерно выглядит в конфиге:

optimization: {
  splitChunks: {
    cacheGroups: {
      lodash: {
        test: /[\/]node_modules[\/]lodash[\/]/,
        name: 'lodash',
        chunks: 'all',
        enforce: true
      }
    }
  }
}

Что это даёт, спросишь? А даёт оно то, что Lodash вылезет в свой собственный файлик lodash.js. Браузер его схватит один раз, в кэш запихнёт и будет как штык использовать везде, где ты его позовёшь. Красота, да?

Но! Вот тут-то и начинается цирк. Если у тебя в проекте уже где-то в углу притаилась другая версия Lodash — например, какая-нибудь левая библиотека свою собственную, ебучую, притащила — то будет полный пиздец. Они начнут конфликтовать, как два барана на мосту, и приложение сломается с таким видом, будто ему кто-то в сраку вилкой ткнул.

Что делать, чтобы не облажаться? Да всё просто, как три копейки. Открой терминал и введи:

npm ls lodash

Эта команда покажет тебе, сколько у тебя этих самых Lodash'ей висит в зависимостях и какие у них версии. Если увидишь, что их больше одного — немедленно начинай приводить всё к одному знаменателю. Обнови зависимости, выгони лишнее, сделай так, чтобы везде была одна мажорная версия. Иначе потом будешь сидеть и чесать репу, почему у тебя ничего не работает, а Lodash ведёт себя как сука непредсказуемая.

Короче, следи за версиями, и будет тебе счастье. А если проигнорируешь — ну, тогда держись, братан, сам виноват.