我们正在尝试创建一个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/)