Добавление пользовательских загрузчиков и плагинов

Дата обновления перевода 2023-01-17

Добавление пользовательских загрузчиков и плагинов

Добавление пользовательских загрузчиков

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

Если, к примеру, вы хотите добавить handlebars-loader, вызовите addLoader в вашей конфигурации загрузчика

1
2
3
4
Encore
    // ...
    .addLoader({ test: /\.handlebars$/, loader: 'handlebars-loader' })
;

Так как конфигурация загрузчика принимает любой валидный объект правил Webpack, вы можете передать загрузчику любую дополнительную информацию, которая вам нужна

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Encore
    // ...
    .addLoader({
        test: /\.handlebars$/,
        loader: 'handlebars-loader',
        options: {
            helperDirs: [
                __dirname + '/helpers1',
                __dirname + '/helpers2',
            ],
            partialDirs: [
                path.join(__dirname, 'templates', 'partials')
            ]
        }
    })
;

Добавление пользовательских плагинов

Encore использует множество разных плагинов внутренне. Но, вы можете добавить ваши собственные, с помощью метода addPlugin(). Например, если вы используете Moment.js, вы можете захотеть использовать IgnorePlugin (см. moment/moment#2373):

1
2
3
4
5
6
7
8
9
10
11
// webpack.config.js
+ var webpack = require('webpack');

  Encore
      // ...

+     .addPlugin(new webpack.IgnorePlugin({
+         resourceRegExp: /^\.\/locale$/,
+         contextRegExp: /moment$/,
+     }))
  ;