【问题标题】:Webpack for backend: the request of a dependency is an expressionWebpack for backend:依赖的请求是一个表达式
【发布时间】:2017-05-24 00:08:46
【问题描述】:

尝试关注this tutorial 为后端使用 webpack 我已经成功构建了捆绑包,不幸的是在完成时它会警告Critical dependency: the request of a dependency is an expression,我使用webpack-node-externals 模块来外部化整个node_modules 目录但是我需要动态地从node_modules 请求一些模块,但是webpack 用错误替换了我的require。显然there's a way 告诉 webpack 不要理会那些无法解决的需求,但它会警告webpack: Using compiler.parser is deprecated,显然这种创建内联插件的方式已被弃用,但我无法将其转换为应该是的新语法:

compiler.plugin("compilation", function(compilation, params) {
  params.normalModuleFactory.plugin("parser", function(parser, parserOptions) {
    parser.plugin(/* ... */);
  });
});

根据this。任何帮助表示赞赏。

【问题讨论】:

    标签: node.js webpack backend


    【解决方案1】:
    function IgnoreUnresolvedPlugin() { }
    
    IgnoreUnresolvedPlugin.prototype.apply = function (compiler) {
      compiler.plugin("compilation", function (compilation, data) {
        data.normalModuleFactory.plugin("parser", function (parser) {
          parser.plugin('call require', function (params) {
            if (params.arguments.length !== 1) { return; }
    
            const param = this.evaluateExpression(params.arguments[0]);
    
            if (!param.isString() && !param.isConditional()) {
              return true;
            }
          });
        });
      });
    };
    

    【讨论】:

      猜你喜欢
      • 2016-08-28
      • 2017-08-11
      • 2022-08-15
      • 2015-10-20
      • 2020-06-15
      • 1970-01-01
      • 2022-11-10
      • 2020-10-11
      • 2018-10-10
      相关资源
      最近更新 更多