Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查webpack是否存在依赖项_Javascript_Webpack - Fatal编程技术网

Javascript 检查webpack是否存在依赖项

Javascript 检查webpack是否存在依赖项,javascript,webpack,Javascript,Webpack,我经常需要检查网页包中是否存在依赖项。例如,我有一堆像[0,1,3,4,5,6,7,8,…]这样的ID,其中一些有我应该加载的图像,而其他的没有 如何检查图像是否应加载是通过创建一个数组,该数组包含具有图像的值,并在检查图像是否应加载时执行array.contains。比如[1,5,7,…] 这开始变得相当麻烦,因为每次添加或删除图像时都需要更改此数组 有没有办法检查我想要的模块是否存在 据我所知,在Webpack1中有一种方法,但它是关闭的 根据文档()我发现它仍然应该是这样工作的,但是我确

我经常需要检查网页包中是否存在依赖项。例如,我有一堆像[0,1,3,4,5,6,7,8,…]这样的ID,其中一些有我应该加载的图像,而其他的没有

如何检查图像是否应加载是通过创建一个数组,该数组包含具有图像的值,并在检查图像是否应加载时执行array.contains。比如[1,5,7,…]

这开始变得相当麻烦,因为每次添加或删除图像时都需要更改此数组

有没有办法检查我想要的模块是否存在

据我所知,在Webpack1中有一种方法,但它是关闭的

根据文档()我发现它仍然应该是这样工作的,但是我确实得到了
错误:找不到模块

这正是我正在做的:

$scope.getExplorationImage = function (imageId) {
    if(__webpack_modules__[require.resolveWeak('image/exploration/' + imageId + '.png')]) {
        console.log("Image exists for: "+imageId)
        return require('image/exploration/' + imageId + '.png');
    } else {
        console.log("Image doesn't exists: "+imageId)
    }
};

我正在使用Webpack3.5.5。如果可能的话,我想避免使用try/catch解决方案。

您所做的就是这样,但它只检查该模块是否已加载,如果您想检查该模块是否可用,则需要将其转换为异步函数

请看这里:

您可以编写一个函数来简化一切:

函数moduleExists(moduleId){
返回新承诺((解决、拒绝)=>{
//检查该模块是否已加载
if(_网页包_模块_;[require.resolve弱(moduleId)]){
返回resolve();
}
返回导入(moduleId)
。然后(()=>解析(),()=>拒绝())
;
});
}
moduleExists('foobaz'/*注意绝对路径*/)
。然后(()=>警报('yes'))
.catch(()=>警报('noope'))
;
const exists=等待模块exists('bar');
如果(存在){/*do stuff*/}

您所做的就是这样,但它只检查该模块是否已加载,如果您想检查该模块是否可用,则需要将其转换为异步函数

请看这里:

您可以编写一个函数来简化一切:

函数moduleExists(moduleId){
返回新承诺((解决、拒绝)=>{
//检查该模块是否已加载
if(_网页包_模块_;[require.resolve弱(moduleId)]){
返回resolve();
}
返回导入(moduleId)
。然后(()=>解析(),()=>拒绝())
;
});
}
moduleExists('foobaz'/*注意绝对路径*/)
。然后(()=>警报('yes'))
.catch(()=>警报('noope'))
;
const exists=等待模块exists('bar');
如果(存在){/*do stuff*/}

我知道问题的状态

如果可能的话,我想避免使用try/catch解决方案

然而,如果有人在测试模块是否存在的过程中试图让webpack不崩溃,那么下面是有效的方法:

// try if module exists
try {
   var module = require('../path/to/module');
}
// fallback if does not exists
catch(err) {
   var module = require('../path/to/fallback/module');
}

您仍然会在控制台中打印错误,但webpack不会使应用程序崩溃,并正确地返回到
catch{}
中提供的模块

我知道问题是这样的

如果可能的话,我想避免使用try/catch解决方案

然而,如果有人在测试模块是否存在的过程中试图让webpack不崩溃,那么下面是有效的方法:

// try if module exists
try {
   var module = require('../path/to/module');
}
// fallback if does not exists
catch(err) {
   var module = require('../path/to/fallback/module');
}

您仍然会在控制台中打印错误,但webpack不会使应用程序崩溃,并正确地返回到
catch{}
中提供的模块

如果
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
这样,您就不会出现异常,仍然可以执行有效的测试。您仍然可以捕获异常,但不使用try/catch。我想在第一种情况下避免抛出异常,但在多次检查之后,我认为这几乎是不可能的。好吧,您仍然在捕获异常,但没有使用try/catch。我想在第一种情况下避免抛出异常,但在多次检查之后,我认为这几乎是不可能的。我使用try/catch方法的主要问题是性能。我现在正在用try/catch做这件事,但如果可能的话,我想用其他的方法。是的,我一直在努力寻找解决这个问题的方法。无论我尝试什么,它都会使应用程序崩溃:/现在,这也是我使用的。我发布它只是为了帮助那些遇到此线程的人作为后备方案,直到有人提供最佳解决方案。还要注意的是,这将在构建日志中产生警告我的try/catch方法的主要问题是性能。我现在正在用try/catch做这件事,但如果可能的话,我想用其他的方法。是的,我一直在努力寻找解决这个问题的方法。无论我尝试什么,它都会使应用程序崩溃:/现在,这也是我使用的。我只是发布它来帮助那些遇到这个线程的人,作为一个后备方案,直到有人提供了一个最好的解决方案