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
如何使用Webpack插件完全删除依赖项及其引用_Webpack_Webpack Plugin - Fatal编程技术网

如何使用Webpack插件完全删除依赖项及其引用

如何使用Webpack插件完全删除依赖项及其引用,webpack,webpack-plugin,Webpack,Webpack Plugin,我正在尝试编写一个网页包插件,该插件可以查找并完全删除遵循特定模式的依赖项(使用require或import导入的任何内容) 免责声明,我知道有,但有两个原因我不使用: 我不仅删除了导入,我还记住了我删除的内容,并将使用这些依赖项创建一个单独的包 更重要的是,我试图克隆那个插件并记住我删除的内容,但这会导致错误。让我解释一下 如果我查看,它将通过在beforesolve钩子中返回null来删除它们。但这似乎并不意味着Webpack会真正忽略它,而不是返回一个空引用。因为我在里面工作,这导致了一个

我正在尝试编写一个网页包插件,该插件可以查找并完全删除遵循特定模式的依赖项(使用
require
import
导入的任何内容)

免责声明,我知道有,但有两个原因我不使用:

  • 我不仅删除了导入,我还记住了我删除的内容,并将使用这些依赖项创建一个单独的包
  • 更重要的是,我试图克隆那个插件并记住我删除的内容,但这会导致错误。让我解释一下
  • 如果我查看,它将通过在
    beforesolve
    钩子中返回null来删除它们。但这似乎并不意味着Webpack会真正忽略它,而不是返回一个空引用。因为我在里面工作,这导致了一个错误,Next无法找到我删除的东西的引用

    这是我的代码:

    class NextCriticalWebPackagePlugin{
    pluginName=this.constructor.name;
    请求=[];
    应用(编译器){
    compiler.hooks.normalModuleFactory.tap(this.pluginName,factory=>{
    点击(this.pluginName,result=>this.checkIgnore(result));
    });
    }
    选中忽略(结果){
    if(result&&result.request&&result.request.startsWith('next-critical/loader')){
    this.requests.push(result.request);
    返回null;
    }
    返回结果;
    }
    }
    module.exports=NextCriticalWebpackPlugin;
    
    如果我运行Webpack,一切看起来都正常,但当我运行构建时,它会抛出错误,无法找到我已删除的模块:

    找不到模块的下一个关键/加载程序/用户/luke/Arbeit/Stroeer/Projekte/paper/apps/web/src/critical/ads.ts'


    因此,我想知道如何告诉Webpack从捆绑包中删除依赖项及其导入项。

    为什么不使用next的动态方法?它将导入拆分为一个单独的块,并将其所有dep移动到itI am,实现一个遵循关键渲染路径模式的下一个插件,并将关键CSS和JS提升到