Как я могу настроить Razzle. js для обслуживания ресурсов приложения из нескольких CDN? - PullRequest
0 голосов
/ 22 апреля 2020

Браузеры обычно ограничивают максимальное количество параллельных загрузок с данного субдомена. Поэтому я хочу распределить загрузку активов по 4 CDN:

Использование чего-то подобного (на основе имени файла) для определения номера CDN :

"/static/media/asset-name.6d24aee6.png".split('').reduce((a, b) => a + b.charCodeAt(0), 0) % 4

Как я могу сделать это в Раззле?

Пока это то, что у меня есть. В razzle.config.js:

const PUBLIC_PATH = process.env.PUBLIC_PATH || '/';

module.exports = {
  modify: (config, { dev, target }, webpack) => {
    if (!dev) {
      config.devtool = false;

      // Use the CDN in production
      config.output = {
        publicPath: PUBLIC_PATH
      };
    }

    config.plugins.push(
      new webpack.DefinePlugin({
        'process.env.PUBLIC_PATH': JSON.stringify(PUBLIC_PATH)
      }),
    }
 }

1 Ответ

0 голосов
/ 28 апреля 2020

Наконец, этот пакет помог: https://github.com/agoldis/webpack-require-from

Просто убедитесь, что загружаете глобальную функцию, используя что-то вроде этого:

if (config.entry.client) {
   config.entry.client.unshift(path.resolve(__dirname, 'globals.js'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...