如何在第三方库中修复动态需求?

时间:2017-11-21 23:56:19

标签: node.js webpack

我的桌面应用程序使用Electron + React作为界面,Edge.js将Node与我的C#应用​​程序连接。

我的问题是:Webpack无法捆绑我的应用程序,因为Edge.js依赖项会抛出以下error

  

严重依赖:依赖的请求是表达式

问题在于Edge.js具有以下动态需求:

var compilerName = 'edge-' + language.toLowerCase();
var compiler = require(compilerName);

大多数情况下,compilerName将被翻译为“edge-cs”,但Webpack无法确定这一点。

我该如何解决这个问题?人们建议设置require contextContextReplacementPlugin,但这两种情况通常适用于require('./directory/' + variable)的情况,我不知道如何在我的情况下使用它们有require(variable)

注意:我需要一个解决方案,我无需修改第三方库代码。

1 个答案:

答案 0 :(得分:1)

我不认为这是可能的,您是否考虑过下面的大型开关?建议here

switch (name) {
  case 'a': return require('./a');
  case 'b': return require('./b');
  // etc...
}