Regex для исключения библиотеки npm из минификации
Я должен использовать библиотеку pub/sub не с открытым исходным кодом для websockets ( диффузии) и придерживаться определенной версии, потому что это то, что используется на стороне сервера, и я не могу контролировать это.
Проблема в том, что в одном утилите в своей базе кода они используют зарезервированное ключевое слово interface
и это вызывает ошибку минификации, которая нарушает сборку:
Failed to minify the code from this file:
./node_modules/babel-loader/lib??ref--6-oneOf-2!./node_modules/diffusion/src/node_modules/util/interface.js:127
Read more here: bit.ly/CRA-build-minify
Какое регулярное выражение я могу использовать, чтобы исключить эту зависимость из минификации?
config.optimization.minimizer[0].options.exclude = /node_modules/;
не исключает его из минификации.
config.optimization.minimizer[0].options.exclude = /^.*(node_modules|.js).*$/;
работает, но это слишком широко
Для большего контекста это код зависимости, которая вызывает сбой минификации:
node_modules/ диффузии / SRC /node_modules/ Util/interface.js
function _implements() {
var args = Array.prototype.slice.call(arguments, 0);
var impl = args.pop();
var unsatisfied = [];
...
// The joys of duck type. Quack quack
args.forEach(function(interface) { <<<<<<<<<<<<<<<<<<<<<
unsatisfied = unsatisfied.concat(interface(impl));
});
Вот так выглядит файл конфигурации webpack до моих переопределений: (нам не разрешено извлекать)
"optimization": {
"minimizer": [
{
"options": {
"test": {
},
"extractComments": false,
"sourceMap": true,
"cache": true,
"parallel": true,
"terserOptions": {
"output": {
"ecma": 5,
"comments": false,
"ascii_only": true
},
"parse": {
"ecma": 8
},
"compress": {
"ecma": 5,
"warnings": false,
"comparisons": false,
"inline": 2
},
"mangle": {
"safari10": true
}
}
}
},
{
"pluginDescriptor": {
"name": "OptimizeCssAssetsWebpackPlugin"
},
"options": {
"assetProcessors": [
{
"phase": "compilation.optimize-chunk-assets",
"regExp": {
}
}
],
0 ответов
Легче исправить, когда не выкидывает ИМО.
Вероятно, вы используете старую версию или сценарии реакции, просто обновите ее до react-scripts@>=2.0.0
.
Взятые из этого раздела в React документации