我遇到了以下问题,我正在使用的软件库之一对‘web工人’有一个可选的依赖关系。如果网络工作者包是可用的,它将使用它,如果它找不到网络工作者包,它将使用另一个不使用网络工作者包的代码路径。
我遇到的问题是,当尝试创建一个角度构建时,它会产生以下错误。
找不到
模块:错误:无法解析中的“web工作者”
如果我检查这个包中的main.js文件,它所做的几乎第一件事就是检查worker是否可用,如果没有,它将不会尝试加载worker。
var workerThreadsExist = false;
try {
require.resolve('web-worker');
workerThreadsExist = true;
} catch (e) {}
// user requested a worker
if (options.workerUrl) {
if (workerThreadsExist) {
var Worker = require('web-worker');
optionsClone.workerFactory = function (url) {
return new Worker(url);
};
} else {
console.warn('Web worker requested but \'web-worker\' package not installed. \nConsider installing the package or pass your own \'workerFactory\' to ELK\'s constructor.\n... Falling back to non-web worker version.');
}
}因此,即使代码流在不可用时不需要(‘web工作者’),但由于某种原因,我在试图构建应用程序时仍然会遇到错误。
如果我改变了
if (options.workerUrl)
转到
if (假)
它仍然给了我模块未找到的错误,消除错误的唯一方法是安装软件包或删除
var Worker =require(‘worker’);
线路。
我怎么才能告诉阿角或者webpack忽视这个丢失的包裹呢?
发布于 2021-09-14 14:49:38
您可以告诉webpack忽略web-worker模块,elkjs正在尝试使用webpack.IgnorePlugin进行require。
在你的webpack.config.js
{
plugins: [
new webpack.IgnorePlugin({
resourceRegExp: /web-worker/,
contextRegExp: /elkjs\/lib$/,
})
]
}这应该告诉webpack忽略web-worker在以elkjs/lib结尾的目录路径中的任何require语句。
https://stackoverflow.com/questions/69070312
复制相似问题