arui-scripts 15.8.1 → 15.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/overrides.md CHANGED
@@ -120,3 +120,62 @@ export default overrides;
120
120
  не боясь что это повлияет на другие конфигурации.
121
121
 
122
122
  Созданная таким образом конфигурация будет шарить с оригинальной конфигурацией только плагин для формирования assets-manifest'а.
123
+
124
+ ### Переопределение плагинов или загрузчиков для конфигураций webpack
125
+ Иногда может понадобиться возможность поменять конфигурацию конкретного загрузчика или плагина, для этого в `webpackClient`, `webpackClientDev`, `webpackServer` и `webpackServerDev` третьим параметром можно получить хелпер-функции `findLoader` и `findPlugin`:
126
+ ```ts
127
+ import type { OverrideFile } from 'arui-scripts';
128
+
129
+ const overrides: OverrideFile = {
130
+ webpackClient: (config, appConfig, { findLoader, findPlugin }) => {
131
+ // ...
132
+ }
133
+ };
134
+
135
+ export default overrides;
136
+ ```
137
+ - `findLoader` - помогает найти загрузчик для переопределения. Функция возвращает ссылку, поэтому вы можете спокойно мутировать этот результат и обходиться без создания нового объекта через spread-оператор. В качестве аргументов принимает `config` и `testRule`, по которому будет искаться загрузчик. Пример:
138
+ ```ts
139
+ import type { OverrideFile } from 'arui-scripts';
140
+
141
+ const overrides: OverrideFile = {
142
+ webpackClient: (config, appConfig, { findLoader }) => {
143
+ const cssModulesLoader = findLoader(config, '/\\.module\\.css$/')
144
+ const currentCssLoader = cssModulesLoader.use.find((cssLoader) => {
145
+ return cssLoader.loader.includes('css-loader') && !cssLoader.loader.includes('postcss-loader')
146
+ })
147
+
148
+ currentCssLoader.options.modules = {
149
+ localIdentName: '[name]-[local]-[hash:base64:5]'
150
+ }
151
+
152
+ return config
153
+ }
154
+ };
155
+
156
+ export default overrides
157
+ ```
158
+ - `findPlugin` - помогает найти плагин для переопределения. Функция так же возвращает ссылку. В качестве аргументов принимает `config` и название плагина. Все типизировано, поэтому название можете достать из автокомплита. для `webpackClient` и `webpackClientDev` из автокомплита будут приходить клиентские плагины, а для `webpackServer` и `webpackServerDev` серверные. Примеры:
159
+ ```ts
160
+ import type { OverrideFile } from 'arui-scripts';
161
+
162
+ const overrides: OverrideFile = {
163
+ webpackClient: (config, appConfig, { findPlugin }) => {
164
+ const [MiniCssExtractPlugin] = findPlugin(config, 'MiniCssExtractPlugin')
165
+
166
+ // возвращаемые плагины так же типизированы
167
+ MiniCssExtractPlugin.options.ignoreOrder = false
168
+
169
+ return config
170
+ },
171
+ webpackServerDev: (config, appConfig, { findPlugin }) => {
172
+ const [BannerPlugin] = findPlugin(config, 'BannerPlugin');
173
+
174
+ BannerPlugin.options.banner = 'unexpected error';
175
+
176
+ return config
177
+ }
178
+ };
179
+
180
+ export default overrides
181
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arui-scripts",
3
- "version": "15.8.1",
3
+ "version": "15.9.0",
4
4
  "main": "./build/index.js",
5
5
  "typings": "./build/index.d.ts",
6
6
  "license": "MPL-2.0",
@@ -65,7 +65,7 @@
65
65
  "mini-svg-data-uri": "^1.4.4",
66
66
  "null-loader": "0.1.1",
67
67
  "pnp-webpack-plugin": "1.7.0",
68
- "postcss": "^8.4.27",
68
+ "postcss": "^8.4.31",
69
69
  "postcss-calc": "^9.0.0",
70
70
  "postcss-color-function": "^4.0.0",
71
71
  "postcss-color-mod-function": "^3.0.0",