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/.eslintrc.js +2 -0
- package/.turbo/turbo-lint.log +22 -14
- package/.turbo/turbo-test.log +9 -4
- package/CHANGELOG.md +12 -0
- package/build/configs/util/apply-overrides.d.ts +8 -0
- package/build/configs/util/find-plugin.d.ts +83 -0
- package/build/configs/util/find-plugin.js +23 -0
- package/build/configs/webpack.client.dev.js +2 -0
- package/build/configs/webpack.client.prod.js +2 -0
- package/build/configs/webpack.server.dev.js +2 -1
- package/build/configs/webpack.server.prod.js +2 -1
- package/build/tsconfig-local.tsbuildinfo +1 -1
- package/docs/modules.md +429 -358
- package/docs/overrides.md +59 -0
- package/package.json +2 -2
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.
|
|
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.
|
|
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",
|