Webpack ContextReplacementPlugin从node_modules获取包

时间:2016-09-06 15:43:20

标签: node.js webpack

我们正在尝试创建一个webpack包,它将在一个包中包含所有依赖项。

有一个特定的包,它具有来自node_modules的动态需求,并且webpack无法在编译时正确解析包。

生成错误的代码是:     // 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,但无论我们尝试了什么,我们都无法将其配置为更改上下文以从node_modules获取文件。

我们尝试过的事情(我们首先尝试获得一个特定的包,称为hsts):

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

0 个答案:

没有答案