用于后端的Webpack:依赖项的请求是表达式

时间:2017-05-24 00:08:46

标签: node.js webpack backend

尝试跟随this tutorial使用webpack作为后端我已经成功构建了bundle,不幸的是在完成时警告Critical dependency: the request of a dependency is an expression,我使用webpack-node-externals模块来外化整个{{1}目录,但我需要动态需要node_modules中的一些模块,但webpack用错误替换了我的require。显然there's a way告诉webpack单独留下那些无法解决但却警告node_modules的要求,显然这种创建内联插件的方式已被弃用但我无法将其转换为新语法应该是:

webpack: Using compiler.parser is deprecated

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

1 个答案:

答案 0 :(得分:0)

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;
        }
      });
    });
  });
};