正则表达式从缩小中排除 npm 库
我必须为 websockets 使用非开源发布/订阅库 (扩散)并且必须坚持使用特定版本,因为它是在服务器端使用的,我无法控制它.
I have to use a non open source pub/sub library for websockets (diffusion) and have to stick to a specific version because it's what is used on the server side and I have no control about it.
问题在于,在他们的代码库中的一个实用程序中,他们使用了保留关键字 interface
并触发了破坏构建的缩小错误:
The issue is that in one single util in their code base they use the reserved keyword interface
and that triggers a minification error that breaks the build:
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/;
does not ecxlude it from minification.
config.optimization.minimizer[0].options.exclude =/^.*(node_modules|.js).*$/;
有效,但范围太广
有关更多上下文,这是导致缩小失败的依赖项代码:
For more context, this is the code of the dependency that is causing the minification to fail:
node_modules/diffusion/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 配置文件的样子:(我们不允许弹出)
This is how the webpack config file looks like before my overrides: (we are not allowed to eject)
"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": {
}
}
],
此问题已在 6.0.0 版本中修复
This has been fixed as of version 6.0.0