Webpack ContextReplacementPlugin从node_modules获取包

我们正在尝试构build一个webpack包,它将在一个包中包含我们所有的依赖关系。

有一个特定的包,它具有来自node_modules的dynamic需求,webpack无法在编译时正确parsing包。

生成错误的代码是:// config.middlewares是node_modules中的一个包列表Object.keys(config.middlewares).forEach(function(moduleName){var pkg = require(moduleName)var alias = config.middlewares [ moduleName]头盔[别名] = pkg})

Webpack将它编译成:

Object.keys(config.middlewares).forEach(function (moduleName) { var pkg = !(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()) var alias = config.middlewares[moduleName] helmet[alias] = pkg }) 

所以我们尝试使用Webpack的ContextReplacementPlugin,但是无论我们尝试过什么,我们都无法将其configuration为更改上下文以从node_modules中获取文件。

我们尝试过的一些东西(我们首先试图得到一个特定的包,叫hsts):

  new ContextReplacementPlugin(/helmet.*/, /\.\.\/hsts/) new ContextReplacementPlugin(/helmet.*/, /\.\/\.\.\/hsts/) new ContextReplacementPlugin(/helmet.*/, /\.\/\.\.\/hsts\/index\.js/)