我需要在编译时生成的Map
的特定实例,以便我可以使用与webpack捆绑的代码。我的用例如果是Map
的实例,但问题确实存在于任何变量中。
webpack.DefinePlugin
因为Map
的实例在字符串化中无法生存而无法工作。我可以反序列化/序列化,但这似乎效率低下。options.externals
无法工作,因为我没有require
外部模块被捆绑商忽略。我已经通过在global
上设置值来实现此功能,但我不确定这是解决此问题的最佳方法。
这是一个可怜的人为例子:
webpack.config.js :
const myVar = new Map([
['a test value', () => {}]
]);
// is there a better way?
global.myVar = myVar;
module.exports = {
entry: './entry.js',
output: {
filename: './output.js'
},
target: 'node',
}
entry.js :
console.log(global.myVar) //=> Map { { "a test value", [Function] } }
在我的真实应用中,我的Map
值会抓取文件系统并构建正则表达式和处理程序的映射。这应该在编译时发生,并且是一个常量映射,所以我想在我的代码中将它作为常量使用。
我尝试在Map
内构建entry.js
,但是有各种奇怪的问题"找不到模块"错误,我认为主要是因为我首先用于构建Map
的功能严重滥用了webpack的权限范围之外的目录树中的动态需求。
非常感谢任何见解。