Нужно динамически исключать блоки кода из пакета во время сборки с помощью веб-пакета - PullRequest
1 голос
/ 13 июня 2019

Мне нужно иметь возможность условно построить продукт, это одна кодовая база, помеченная белым для многих клиентов, и существует вариант использования, при котором определенный компонент или набор компонентов должен существовать только для одного экземпляра клиента.

Я нашел несколько загрузчиков веб-пакетов, которые позаботились об этом, но они полагаются на комментарии, которые удалены из реагирующего DOM, и ни одному из параметров конфигурации, которые я знаю в веб-пакете, не удалось добраться до кода до этогоpoint

  {
    enforce: 'pre',
    test: /\.(tsx?|js)$/,
    exclude: /node_modules/,
    use: [
      {
        loader: "webpack-remove-block-loader",
        options: {
          active: true, // Boolean. loader on or off
          start: "{/*", // String.
          end: "*/}", // String.
          blocks: ['client'+argv.entryCode], // Array.
        }
      }
    ]
  },

Есть ли способ, которым я не собираюсь запускать это на чистом TSX или, возможно, каким-то образом сохранить требуемые комментарии?

В качестве альтернативы любой другой способ управления чем-то подобным.В большинстве случаев это будет специфичный для клиента компонент, но также может быть определенная вспомогательная функция, которую необходимо исключить, для которой вышеуказанный загрузчик веб-пакетов должен работать идеально.

1 Ответ

0 голосов
/ 13 июня 2019

Просто условно добавьте целое правило.

Примерно так:

if (active) {
  config.module.rules.push({
    // ...the rule you posted in your question
  })
}

или

rules: [
  active && {
    // ...the rule you posted in your question
  },
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...